phase-merge can read the forge before a recovery push moves the pull request head, and spends a retry on the old red #594

Closed
opened 2026-09-21 14:50:30 +00:00 by claude · 1 comment
Member

Found during IW-491.

After a recovery push, phase-merge may read the forge before the forge has moved the pull request head to the pushed commit. The read then returns the old head and its red verdict, and phase-merge counts that as a failure of the new head and spends a retry.

PROPOSED FIX. Before judging a reading, compare the pull request head with the local pushed sha. When they differ, the reading is not yet about the pushed commit: wait and read again, and do not spend a retry.

Found during IW-491. After a recovery push, `phase-merge` may read the forge before the forge has moved the pull request head to the pushed commit. The read then returns the old head and its red verdict, and `phase-merge` counts that as a failure of the new head and spends a retry. PROPOSED FIX. Before judging a reading, compare the pull request head with the local pushed sha. When they differ, the reading is not yet about the pushed commit: wait and read again, and do not spend a retry.
Author
Member

Closed as a duplicate of #601, which takes this defect and three others as one investigation on one branch. This one is phase 3 there.

The four share a cause: the card and the CI reading do not agree on which head they speak about. Fixing them apart would read the same code four times.

Closed as a duplicate of #601, which takes this defect and three others as one investigation on one branch. This one is phase 3 there. The four share a cause: the card and the CI reading do not agree on which head they speak about. Fixing them apart would read the same code four times.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
iterative-works/iw-cli#594
No description provided.