Commit d1e5f1a
authored
Fix Calendar view hanging for Dags with high-frequency cron schedules (apache#71263)
The planned-runs computation for cron timetables iterates croniter until the
year boundary with no cap, while the generic-timetable path stops at
MAX_PLANNED_RUNS. For "*/5 * * * *" that is ~105k iterations (~2s) per calendar
request, ~520k (~7s) for a minutely cron, and ~31M (minutes of CPU) for a
seconds-resolution cron - enough for any user with Dag read access to pin an
API server worker just by opening the Calendar tab. Apply the same
MAX_PLANNED_RUNS cap the generic path has used since the endpoint was added.1 parent 956b7f8 commit d1e5f1a
2 files changed
Lines changed: 44 additions & 1 deletion
File tree
- airflow-core
- src/airflow/api_fastapi/core_api/services/ui
- tests/unit/api_fastapi/core_api/routes/ui
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
221 | 222 | | |
222 | 223 | | |
223 | 224 | | |
224 | | - | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
225 | 229 | | |
226 | 230 | | |
227 | 231 | | |
| |||
Lines changed: 39 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
326 | 327 | | |
327 | 328 | | |
328 | 329 | | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
329 | 368 | | |
330 | 369 | | |
331 | 370 | | |
| |||
0 commit comments