fix: scheduler container supervises scheduler instead of dag-processor - #847
fix: scheduler container supervises scheduler instead of dag-processor#847sweb wants to merge 4 commits into
Conversation
c72a2ee to
d54206d
Compare
e1bdc87 to
363fb7c
Compare
| // the scheduler. | ||
| command.extend(vec!["airflow dag-processor &".to_string()]); | ||
| } | ||
| command.extend(vec!["airflow scheduler &".to_string()]); |
There was a problem hiding this comment.
So previously the scheduler was ignored and now the dag-processor is ignored.
Shouldn't they both be tracked?
There was a problem hiding this comment.
I'll look into how to track both 👍
There was a problem hiding this comment.
I can see how this would escalate into a much larger refactoring and raise again the question if it's a good idea to stitch together shell scripts in rust code.
So feel free to skip if that happens.
There was a problem hiding this comment.
One idea here: Ditch the current mechanic and utilize probes - at least the scheduler has an API you can call to check if everything is ok.
There was a problem hiding this comment.
One goal of the current bash-fu was to ensure that products get a chance to react to SIGTERM and do a "graceful" shutdown.
Probes alone cannot do that. Maybe in combination with a container preStop command ?
|
|
||
| import requests | ||
|
|
||
| HEALTH_URL = "http://airflow-webserver:8080/api/v2/monitor/health" |
There was a problem hiding this comment.
as a "nice to have", maybe this can be incorporated in commons/health.py to reduce duplication and increase coverage in other tests.
Description
With Airflow 3, the dag processor was supervised instead of the scheduler in the scheduler container. When the scheduler process died, the pod would not terminate and continue to declare itself as healthy even though nothing would get scheduled.
Definition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features tracker