Repository navigation
One data declaration authored twice: main's floor lane is red for every PR - #9500
gunbai-bot[bot] wants to merge 1 commit into
Conversation
…ry PR dag/gunbc/fleet_fan_wiring_witness.dag declares `data srv3_wiring_with_a_duplicated_header` at BOTH line 447 and line 754. The two blocks are byte-identical, seven lines each, so this is a copy rather than two intents that need reconciling. The compiler refuses: duplicate declaration 'srv3_wiring_with_a_duplicated_header' in module 'gunbc.fleet_fan_wiring_witness' MEASURED DISCRIMINATOR, both directions, on the same entry: main as it stands 1 blocking error, 283 advisories with this deletion 0 blocking errors, 283 advisories Same advisory count both ways, so the diff removes the duplicate and nothing else. The three remaining references still resolve against the surviving declaration. WHY IT IS WORTH A DEDICATED CUT: this is not one PR's problem. The required floor resolves the whole corpus, so a duplicate declaration anywhere refuses the phase for EVERY open PR -- measured on gunbc#9456, whose floor lane failed after 34m51s on this error and on the product.fabric.contention break, neither of which that PR touches. Every lane is currently paying ~35 minutes to fail on someone else's break. The second break is separately owned and already in flight: gunbc#9488 removes contention's reference to `grant_duration_seconds`, which `dag/product/fabric/supply.dag` stopped declaring in b20ac7a and now mentions only in a comment. That PR does NOT touch this file, so main stays red on this error after it merges. Both are needed. PROVENANCE: introduced by 868a509, "Consolidate eight approved fabric/fleet PRs into one, and repair the two breaks the merge made" -- the consolidation repaired two breaks and introduced a third. That is the ordinary hazard of hand-resolving a large multi-PR merge, and the reason this fix states its discriminator rather than asserting the deletion is obviously safe. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Predicted result, recorded before the run finishes so it is a prediction and not an explanation afterwards: this PR's own floor lane will FAIL, and that is expected. Main is red on two independent breaks. This PR fixes one of them. Until #9488 merges, the floor phase will still refuse on the other: What should change is that What should not change is the five So the honest reading of this PR's CI is: red, with exactly five remaining errors and the duplicate-declaration line gone. A green run would be the surprising outcome and would mean #9488 landed in between. I am recording this now because a red check on a PR whose stated purpose is "unbreak main" invites either a retry loop or the conclusion that the fix does not work. Neither is right. The evidence for the fix is the two-directional compile discriminator in the description — 1 blocking error on main, 0 with the deletion, 283 advisories both ways — not this run's exit status. — sent from merry-bear-547 |
|
Closing. #9497 landed the same repair while this was open, and did it better — and merging this now would actively remove content.
Why this must be closed rather than mergedThis PR is still That is authored rationale #9497 deliberately preserved by folding both copies' comments together. My version deleted the duplicate's comment along with its The part worth keeping from thisAn approval attaches to a diff, but a diff's effect is relative to a base that moves. Review 56890 correctly assessed "surgical delete of a duplicated So the check that mattered was not the review state but re-reading the diff against the current base before acting on it. Main is still red on the other breakBreak 1 is unfixed: compiling — sent from merry-bear-547 |
dag/gunbc/fleet_fan_wiring_witness.dagdeclaresdata srv3_wiring_with_a_duplicated_headerat both line 447 and line 754. The two blocks are byte-identical, seven lines each — a copy, not two intents needing reconciliation.Discriminator, both directions, same entry
Identical advisory count, so the diff removes the duplicate and nothing else. The three remaining references resolve against the surviving declaration.
Why this is not one PR's problem
The required floor resolves the whole corpus, so a duplicate declaration anywhere refuses the phase for every open PR. Measured on #9456: floor lane failed after 34m51s on this error plus the
product.fabric.contentionbreak — neither of which that PR touches. Every lane is currently paying ~35 minutes to fail on someone else's break.The other break is separately owned and does not cover this one
Main is red on two independent errors:
product.fabric.contentionimportsgrant_duration_seconds, whichdag/product/fabric/supply.dagstopped declaring inb20ac7ad44fand now mentions only in a//comment — plus two non-exhaustive matches (UnobservedGrantDuration,QuoteNotPriceableWithoutDuration). The unobserved-duration trigger fires: contention refuses to rank rather than substituting a worst case #9488 fixes this, verified: 0 references remain on its head.Both are needed. Verified by compiling
dag/product/fabric/contention.dagdirectly: 5 blocking errors from main's own content.Provenance
Introduced by
868a509a80e— "Consolidate eight approved fabric/fleet PRs into one, and repair the two breaks the merge made". The consolidation repaired two breaks and introduced a third. That is the ordinary hazard of hand-resolving a large multi-PR merge, and the reason this fix states its discriminator rather than asserting the deletion is self-evidently safe.