Repository navigation
docs(inflight): a sighting that rules out branch content by construction - #447
Conversation
…onstruction RegistrationRaceStaleResidentIT.freshArrivalCollidingWithStaleShardResidentMustStillGetProcessed failed on #438 with the same mid-loop pause-point signature every other sighting carries. That branch changes only bin/ and docs/. It compiles no Java and touches no test, so it cannot have caused an integration failure - which makes this the first sighting to rule out branch content by construction rather than by comparing neighbouring commits. The entry already argued master-state and test-side from cross-branch history; this is the same conclusion reached without needing the history at all. The ledger's own reproduce line is included so the next reader can re-establish it rather than take the claim on trust. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MWLkoGdvM2CHQCsYpgUMAR
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
✅ Duplicate Code ReportTwo engines run in parallel for cross-validation. Each has its own thresholds tuned to its baseline - the real safety net is the per-engine "max increase vs base" check. ✅ PMD CPD
No new clones introduced by this PR. ✅ jscpd (language-agnostic)
No new clones introduced by this PR. Powered by astubbs/duplicate-code-cross-check |
SpotBugs ReportNo SpotBugs XML report found. The compile or analysis step may have failed. Updated for |
[superseded - a quarantined test changed outcome] 🧪🔒 Quarantine Lane Report
🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its Updated for Superseded by a newer quarantine lane report. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #447 +/- ##
============================================
+ Coverage 81.99% 82.31% +0.31%
- Complexity 1465 1474 +9
============================================
Files 95 95
Lines 5133 5133
Branches 500 500
============================================
+ Hits 4209 4225 +16
+ Misses 724 711 -13
+ Partials 200 197 -3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🟢 Throughput — OKThis branch measured about 2% slower than master, on the one test this measures. That is INSIDE this test's own run-to-run spread of about 17%, so read it as a reading and not as a result - re-running the same commit moves it by about as much.
Allowable range 🟢 ≥ 0.70 · 🟡 0.50–0.70 (about a 30% loss) · 🔴 < 0.50 (about a 50% loss) What the numbers mean, and what they cannot tell youThe one that gets misread. Why a shape and not a rate. A rate depends on which runner you drew. A shape does not: every test here processes a fixed number of records, so a runner twice as slow doubles the subject and the controls together and leaves their ratio alone. That is the whole trick, and it is why the reported rate is shown last and labelled as this machine only. Reading the comparison. By conservation, not by correction. Every test in this lane processes a fixed number of records, so within one run the ratio of one test's time to another's is invariant under machine speed — a runner twice as slow doubles both terms and leaves the ratio alone. There is no machine-index correction to be wrong, because nothing needed correcting. Per-method times, not class times. A class time is Reference is the median of 10 recent What this still cannot do. It removes machine-to-machine variance. It does not remove this test's own run-to-run variance, measured at about 30% on a single unchanged commit while its controls stayed within 5%. That is a property of the test, not of the comparison, and no arithmetic here can touch it — which is why the reference is a median and the bounds are deliberately coarse. 🟡 means look at this; only 🔴 is outside the measured spread. Runs used: c668acb, fb5ea93, 6573781, c30aaee, ca9c21b, 77fbba8, 7a8a7f0, 2e2705a, 28c6be6, c813942 Since the previous push: ratio 0.827 -> 0.979, share 1.809 -> 1.528, rate 65346 -> 68668 (+5.1%). One push of difference sits inside this test's measured spread - read it as movement, not as a result. Updated for |
…-registration-race # Conflicts: # docs/inflight/test-untracked-ci-flakes.md
[superseded - a quarantined test changed outcome] 🧪🔒 Quarantine Lane Report
🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its Since the previous push: Updated for Superseded by a newer quarantine lane report. |
…o be deleted The reproduce line anchored the by-construction argument to origin/feats/inflight-rank-cli. That branch is deleted when #438 merges, at which point the command errors and the claim it supports becomes unverifiable - with nothing going red to say so, because no gate checks a branch ref. AGENTS.md makes the same point about branch names generally: a branch name says nothing about whether the work landed, and nobody comes back to upgrade it. Asked of the pull request instead, the answer is identical and outlives the branch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MWLkoGdvM2CHQCsYpgUMAR
🧪🔒 Quarantine Lane Report
🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its Since the previous push: Updated for |
… new IT lands in the catch-all shard by design Two conflicts, both resolved by keeping both sides rather than picking one. docs/quarantined-tests.md: #440 quarantined RegistrationRaceStaleResidentIT on the recorded ledger (rule 1), which this branch had cited as master-state twice but not quarantined. That entry stays verbatim. Beside it, this branch's rewrite of the largeNumberOfInstances entry replaces master's "measured but not explained" text - the mechanism is measured now, and the registry is one of three places that said otherwise. docs/inflight/test-untracked-ci-flakes.md: master's row had reached 12 sightings, including #447's by-construction one on a docs-only branch; this branch's 2026-09-04 sighting on #444 and its same-head re-run control were not among them. Merged to 13 with both. Either side taken whole would have dropped a sighting under an authoritative-looking count - the same trap the previous merge of this file recorded. #442 sharded the integration lane; ClosingMemberRebalanceIT is not in HEAVY_CLASSES and lands in the catch-all by subtraction, which its design calls the safe direction: a new class runs by default. At ~52s for five cases it does not belong in the heavy set. ChaosScenarioBase auto-merged (#435's classification beside this branch's getMessage type fix); test-compile confirms it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WErnxQd9Ew57F9SsqzdPU5
Inherited #440, #447 and #435. Two of them touch this branch's ground. #440 QUARANTINES the registration-race test this branch has been recording sightings of. Nothing here needs to change for that - the ledger row and the quarantine registry are different instruments, and master keeps both - but it means a future red from that test is no longer this branch's problem to attribute. THE LEDGER ROW, CONFLICTED A THIRD TIME AND UNIONED AGAIN Both sides said "12 seen" and neither was a superset: they count DIFFERENT seventh sightings on 2026-09-03 - master's is #438, this branch's is #433 - so the union is thirteen. A count that matches on both sides is the easiest kind of conflict to resolve wrongly, because taking either side whole looks like a no-op and silently drops one real sighting. Master's #438 control is the stronger of the two and is kept as such: that branch's whole diff is `bin/` and `docs/`, compiling no Java, so the tree built there IS master's - branch content is excluded by construction rather than by comparison. This branch's within-branch control is kept beside it because it establishes something that one cannot: one tree, both outcomes, which excludes the tree itself and leaves only the runner. They are different arguments, not two tellings of one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C3KnLcX4KibVMCP6sMfNgM
Records one sighting in
docs/inflight/test-untracked-ci-flakes.md. No code change.Description
RegistrationRaceStaleResidentIT.freshArrivalCollidingWithStaleShardResidentMustStillGetProcessedfailed on #438's CI with the samecontrol thread must reach the mid-loop pause point (offset 25)signature every other sighting in that row carries - its saturation/pause-point setup guard, not the confluentinc#909 assertion the test exists to make.Scope changed under this PR, and the description is corrected rather than left standing. It was opened when the row held seven sightings, claiming to add the first by-construction case. While it sat, #442 landed four more sightings on master - two of them on documentation-only heads, which is independently the same kind of argument. Master got there first and with more data. The merge reconciles both sides: master's row wholesale, this sighting folded into its list, count reconciled.
What still earns its place is a finer distinction than the row already made. Master's documentation-only heads sit on branches whose earlier commits changed Java, so the tree that was built carries those changes. #438's entire branch diff is
bin/anddocs/- it compiles no Java and changes no test - so the tree built there is master's exactly. A branch that cannot have caused an integration failure produced one, with no neighbouring commit needed to see it. That is one sentence inside a row master owns, which is the honest size of this change.The reproduce line is in the entry so the next reader can re-establish it instead of taking it on trust:
which prints nothing.
Why now
AGENTS.md: a flake observed on a PR's CI gets its ledger entry before that PR merges, because seeds and job logs expire.bin/inflight.mjs codecov testholds the per-commit outcome independently and outlives the log, so the urgency is lower than it used to be - but the interpretation is what this entry carries, and no command produces that.Not included, and why
A second change was planned for this branch and dropped after the experiment refuted it. The claim was that
./mvnw ... -Dtest='A+B'returnsBUILD SUCCESShaving run zero tests - a silent false green worth documenting. It does not. Measured on this tree with surefire 3.5.6 and no pom override, in both invocation shapes:-pl parallel-consumer-core surefire:test -Dtest='A+B'BUILD FAILURE- "No tests matching pattern ... were executed!"-pl parallel-consumer-core -am test -Dtest='A+B'BUILD FAILURE, same message-pl parallel-consumer-core surefire:test -Dtest='A,B'BUILD SUCCESSSo
+is genuinely not a separator - comma is - but the failure is loud, not silent. Nothing needed documenting, anddocs/testing.md's existing-DfailIfNoTests=trueadvice was left alone: it guards a different property (failIfNoTests, no tests at all in the module) from the one that fires here (surefire.failIfNoSpecifiedTests, the pattern matched nothing), and shallow-reading one as the other would have made the docs worse.Checklist
docs/features/- N/A - no feature; this is CI-flake evidencedocs/inflight/working note (pr-/branch-) started at the PR's first commit - N/A - the change is an in-flight ledger entry, and a working note about a one-line ledger edit would be the duplication this directory'sAGENTS.mdforbidsce-simplifyandce-code-reviewlocally - N/A - one line of prose, no code.bin/check-all.shpasses with no gate failing🤖 Generated with Claude Code
https://claude.ai/code/session_01MWLkoGdvM2CHQCsYpgUMAR