Summary
In components/job-orchestration/job_orchestration/scheduler/query/query_scheduler.py, the loop that processes pending query jobs performs a bare msgpack.unpackb(job["job_config"]) without any error handling. A corrupted or otherwise undeserializable job config could raise an exception and halt processing of all subsequent pending query jobs.
Suggested Fix
Wrap the msgpack.unpackb(job["job_config"]) call in a try/except block (similar to the guard added for the compression scheduler in PR #2178). On failure:
- Log the exception with
logger.exception, including the job ID.
- Update the query job's status to
FAILED with a clear status_msg indicating the config is corrupted or undeserializable.
continue the loop so subsequent query jobs are still processed.
Context
Summary
In
components/job-orchestration/job_orchestration/scheduler/query/query_scheduler.py, the loop that processes pending query jobs performs a baremsgpack.unpackb(job["job_config"])without any error handling. A corrupted or otherwise undeserializable job config could raise an exception and halt processing of all subsequent pending query jobs.Suggested Fix
Wrap the
msgpack.unpackb(job["job_config"])call in atry/exceptblock (similar to the guard added for the compression scheduler in PR #2178). On failure:logger.exception, including the job ID.FAILEDwith a clearstatus_msgindicating the config is corrupted or undeserializable.continuethe loop so subsequent query jobs are still processed.Context
brotli.decompress+msgpack.unpackbofclp_config).job_configis plain msgpack (no brotli compression), written by the Rust API server viarmp_serde, so it is not affected by the VARBINARY truncation issue that triggered PR fix(package)!: Increase database column sizes for compression & query job configs; Handle corrupted job configs gracefully (fixes #2151). #2178. The MEDIUMBLOB schema change in PR fix(package)!: Increase database column sizes for compression & query job configs; Handle corrupted job configs gracefully (fixes #2151). #2178 further prevents future truncation for that column.