Skip to content

fix(scheduler): Add deserialization resilience guard to query scheduler loop #2200

@coderabbitai

Description

@coderabbitai

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions