Skip to content

Code Review Bench PR #20106 - fix: resolve race condition in compound trigger evaluation#20

Open
kayagokalp wants to merge 2 commits intobase_pr_20106_20260125_5205from
corrupted_pr_20106_20260125_5205
Open

Code Review Bench PR #20106 - fix: resolve race condition in compound trigger evaluation#20
kayagokalp wants to merge 2 commits intobase_pr_20106_20260125_5205from
corrupted_pr_20106_20260125_5205

Conversation

@kayagokalp
Copy link

Benchmark PR for Gitar evaluation

Original PR: agentic-review-benchmarks#7

fix: resolve race condition in compound trigger evaluation

desertaxle and others added 2 commits January 25, 2026 12:10
Fixes two race conditions in compound trigger evaluation:

1. **Never-firing race** (transactional): When two child triggers fire
   concurrently in separate transactions, each only sees its own
   uncommitted insert due to READ COMMITTED isolation. Neither sees
   enough firings to trigger the parent.

   Fix: Use PostgreSQL advisory locks to serialize concurrent evaluations
   for the same compound trigger.

2. **Double-firing race** (autocommit): When both transactions see all
   firings, both delete and both fire the parent.

   Fix: Use DELETE ... RETURNING to make clearing a claim operation.
   Only the worker that successfully deletes the expected firings
   proceeds; others bail out.

Based on the fix in PrefectHQ/nebula#10716.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants