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

   ## Summary
   
   `Trigger.get_sorted_triggers` builds one SELECT each for callback, 
task-instance and asset triggers. The task and asset SELECTs only take triggers 
that are unassigned or owned by a dead triggerer; the callback SELECT had no 
such filter, so every triggerer reclaimed every callback trigger on every pass:
   
   - A callback trigger owned by a live, heartbeating triggerer is taken over 
and then cancelled on the original, with both triggerers free to repeat that on 
each other.
   - Reclaiming triggers it already owns burns the triggerer's per-loop 
selection budget ahead of the task and asset SELECTs.
   
   The asset SELECT had the same defect until #65792 added the predicate there; 
callback was missed.
   
   ## Behavior change
   
   A callback trigger owned by a live triggerer is no longer reassigned, 
matching task and asset triggers.
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Opus 5)
   
   Generated-by: Claude Code (Opus 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