From 816ae3966100d79e527964ead9a0c05f7152a060 Mon Sep 17 00:00:00 2001 From: Rex Raphael Date: Tue, 25 Aug 2026 22:58:18 -0500 Subject: [PATCH] docs(ci): the migration-lock test does not hang ci.yml justified its -run filter by saying the mongo suite contains a hanging migration-lock test. TestMigrate_DoesNotBreakFreshLock does not hang. Against a single-node rs0 replica set matching this job's own service it passes in 11 to 12 seconds over four runs, waiting out the migration lock-acquire retry rather than blocking on it. The claim was stale, and stale comments are worse than absent ones because they get believed. This one did: I repeated it as fact when writing up a task for another session, which sent somebody looking for a hang that was not there. They found the truth by running it. I have now run it myself rather than take their number on trust, which is the same courtesy. Comment only. The filter itself is untouched, deliberately. Its stated justification being wrong does not tell you what the right filter is, and the real question underneath, whether the other 89 integration-tagged tests belong in this job, deserves a decision rather than being resolved as a side effect of a comment fix. The comment now says that plainly and says to run them as a set against main before widening anything, because the only count taken of them so far was taken against a 300-commit-stale tree. One em dash removed as a side effect of rewriting the block. The one left at line 199 is in an unrelated comment and stays there rather than widening this diff. --- .github/workflows/ci.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f89f0eb..208e6502 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,10 +33,25 @@ jobs: # ─── Store Conformance (Postgres + Mongo) ─────────────────────────── # Runs the cross-backend store conformance suite against real Postgres # (testcontainers) and MongoDB (single-node replica set, so app/org cascade - # transactions work). Scoped to `-run TestConformance` so it does NOT run the - # older per-backend store_test.go suites — those now pass on postgres (env_id - # is seeded), but the mongo suite still has a hanging migration-lock test - # (TestMigrate_DoesNotBreakFreshLock) tracked separately. + # transactions work). The -run filter below is what stops this job also + # running the older per-backend store_test.go suites, which now pass on + # postgres since env_id is seeded. + # + # That filter used to be justified here by the claim that the mongo suite + # contains a hanging migration-lock test, TestMigrate_DoesNotBreakFreshLock. + # It does not hang. Measured against a single-node rs0 replica set matching + # this job's own service, it passes in 11 to 12 seconds over four runs, + # waiting out the migration lock-acquire retry rather than blocking on it. + # The claim was stale and cost at least one person time chasing a hang that + # was not there. + # + # What that correction does not settle is whether the rest of the + # integration-tagged tests belong in this job. There are 96 of them, this + # pattern matches 7, and the remaining 89 are built by nothing and run by + # nothing. That is a real question with a real cost either way, and it wants + # deciding rather than inheriting. If you widen the filter, run them as a set + # against main first, because the last count taken of them was taken against + # a stale tree and was wrong. # # BLOCKING: all four backends (memory + sqlite from the `go` job, and # postgres + mongo here) must pass the same store contract, so behavioral