jason810496 opened a new pull request, #70694:
URL: https://github.com/apache/airflow/pull/70694

   - related issue: #50708
   - upstream fixes: hynek/structlog#807 (released in structlog 26.1.0), 
pallets-eco/croniter#185 (released in croniter 6.1.0)
   
   ## Why
   
   The dag-processor memory leak in #50708 has two library-level root causes 
that are already fixed upstream: structlog leaks one lock and file-handle entry 
in `WRITE_LOCKS` per DAG-file log reopen on every parse cycle (fixed in 
26.1.0), and croniter leaks on every cron schedule evaluation (fixed in 6.1.0). 
The current minimums (`structlog>=25.4.0`, `croniter>=2.0.2`) still admit the 
leaky versions, so constraint-less installs and release-branch constraints can 
resolve them. Every released Airflow to date ships a leaky structlog (3.2.2 
constraints pin 25.5.0).
   
   Verified empirically: on 3.2.2-era versions with example DAGs only, the 
standalone stack leaks ~34 MB/h of anonymous memory concentrated in the 
dag-processor, while a main-based image already running structlog 26.1.0 and 
croniter 6.2.x is near-flat (~9 MB/h residual across 8 processes). 
`constraints-main` already resolves the fixed versions, so this bump changes 
nothing for main CI and only raises the floor.
   
   ## What
   
   - Bump `structlog>=25.4.0` to `structlog>=26.1.0` in all 8 declaring 
distributions: airflow-core, task-sdk, airflow-ctl, and shared dagnode, 
listeners, logging, observability, providers_discovery.
   - Bump `croniter>=2.0.2` to `croniter>=6.1.0` in airflow-core.
   - Regenerate `uv.lock` (requirement metadata only, locked versions 
unchanged: structlog 26.1.0, croniter 6.2.4).
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [x] Yes, with help of Claude Code Fable 5 following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to