-
Notifications
You must be signed in to change notification settings - Fork 16.3k
Extend command column in the edge_job table to accomodate more chars #51716
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend command column in the edge_job table to accomodate more chars #51716
Conversation
jscheffl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for raising the PR! In my cases the commadn was always sufficient in length.
I am not sure if 1000 is not enough if in all cases 2048 will be sufficient?
@ashb or @amoghrajesh do you know in case of retry or what is coming how long a airflow.executors.ExecuteTask json object can get? Is 2048 safe?
providers/edge3/src/airflow/providers/edge3/executors/edge_executor.py
Outdated
Show resolved
Hide resolved
|
@jscheffl @dheerajturaga from what i see in the edge executor interface, the edge_command is nothing but a model dump of I tried a small experiment (Made some tweaks so it prints the size of the So i can see in normal cases, its 903 and then 928. Considering that we can max out some fields in length like: I think 2048 would be a good length specifier here. I do not see a situation where it could exceed beyond that and anything shorter could be hit real soon and become limiting. |
providers/edge3/src/airflow/providers/edge3/executors/edge_executor.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
jscheffl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Just will make a short test and CI needs to be green, then LGTM!
|
Thanks @amoghrajesh for the quick sanity check! |
Great!, I ran the following in |
|
Manual tests with Airflow 3 and Airflow 2.11 went fine! |
The
commandcolumn in theedge_jobtable is hitting the character limit of1000during retires of decent sized BashOperator commands. This is causing the EdgeExecutor to crash and exit leaving the scheduler in a bad state. This PR bumps up the char limit to2048Here's the snippet of the error from the scheduler logs