The GitHub Actions job "Tests (AMD)" on 
airflow.git/fix/asset-event-lock-contention has failed.
Run started by GitHub user hkc-8010 (triggered by hkc-8010).

Head commit for run:
ad902d0cd4c2b2d1d4a51c7e7a7955a75be34bd0 / Hemkumar Chheda 
<[email protected]>
Register task-success asset events asynchronously to avoid API-server lock 
contention

On task success, ti_update_state committed the TI state and then registered 
asset
events while still holding the task_instance row lock. Under high fan-out (many 
tasks
emitting assets at once) this held the lock across the long registration work, 
piling
up requests and OOMKilling the API server.

Record the asset events as a durable marker in a new asset_event_queue table, 
committed
in the same transaction as the TI state, and let the scheduler drain that queue 
and run
the registration. The task-completion request no longer registers assets 
itself, so the
row lock is held only for the state write plus one insert. The drain resolves 
the task
instance by natural key (dag_id, run_id, task_id, map_index) rather than its 
surrogate
id, so clearing a task (which reassigns the id) does not drop pending events on 
any
backend. A registration that keeps failing is retried up to
[scheduler] asset_event_queue_max_attempts times, then parked and surfaced via 
the
asset.event_queue.failures metric. Also replace the alias-event ORM append with 
a direct
association insert to avoid an O(n) lazy-load on long-lived aliases.

closes: #66853

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

Report URL: https://github.com/apache/airflow/actions/runs/29912096464

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to