← Handoffs

Repository · handoffs

Finish CI and mark BuildTestEmbedded PR 1109 ready for review

View on GitHub ↗

id: hf-2026-09-24-give-projectionchangejournal-a-per-directory-single-writer-lock-so-two-buildtestembeddedservice-instances-on-one-data-directory-cannot-both-create-the-same-journal-fixes-testrecoveryterminalmutationpreservescancelandbypasswinners url: url://handoff/handoffs/hf-2026-09-24-give-projectionchangejournal-a-per-directory-single-writer-lock-so-two-buildtestembeddedservice-instances-on-one-data-directory-cannot-both-create-the-same-journal-fixes-testrecoveryterminalmutationpreservescancelandbypasswinners title: Finish CI and mark BuildTestEmbedded PR 1109 ready for review summary: Watch the four shards and later bld-build on pushed head 8dbb8564a, refresh the final green evidence, and mark the PR ready. The shutdown diagnostic fix, two review passes, final local 2/2 tests, focused remote 7/7 tests, rebase, push, and description refresh are complete; do not queue or merge. created: 2026-09-24T04:35:33.951Z completed: null dependencies:

RE-VERIFY (2026-09-27 16:32 UTC): This is a write-time snapshot. Recheck https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1109, its current head, GitHub Actions checks, and GraphQL isInMergeQueue before acting.

Finish CI and mark BuildTestEmbedded PR 1109 ready for review

Mission and current state

The user asked to close the final-review finding that shutdown-time worker exceptions could disappear, run both review passes, refresh the description, mark PR 1109 ready after a green head, and stop before queueing or merging. The code, tests, reviews, rebase, push, and description refresh are done. The remaining work is to watch the four shards and later bld-build on head 8dbb8564a4e3b9c14649ff1ec7180e9ff4ebd4ff, fix any real failure locally, then mark the PR ready only after green. Do not enqueue, merge, publish, or deploy.

At 16:32 UTC GitHub reported the PR OPEN/DRAFT, head 8dbb8564a, four shards IN_PROGRESS, mergeStateStatus=BLOCKED while checks are pending, and no merge. The run is https://github.com/CodexCoder21Organization/BuildTestEmbedded/actions/runs/36332888133. bld-build appeared later than the four shards in the prior green run, so its absence at this snapshot is expected. The PR watcher was started with coursier launch buildwatchman:build-watchman:0.0.18 -r https://kotlin.directory -- --repo CodexCoder21Organization/BuildTestEmbedded --pr 1109 --interval-seconds 300, with no --to-merged; it was stopped at the 60-minute checkpoint and must be restarted by the next worker.

What changed and why

The initial ownership work fenced projection journal generations and retained source publication obligations so overlapping service instances cannot overwrite one another's journal work. After seven shutdown-related commits, final review found that close-time exceptions were discarded by the deferred ingestion, dispatch, worker terminalization, and shard close guards. A red-first public test reproduced the gap: shutdown left the run recoverable, but stderr was empty after an interrupted native snapshot lock. The final fix reports each cause once with run ID, context, and full stack trace to stderr while preserving a nonterminal run for successor recovery. A second public test injects an unrelated runner exception during close and verifies one full diagnostic plus successor recovery. Review also found and closed neighboring short-message-only catches in original and resumed shards, resumed run workers, and upload finalization.

The PR branch was rebased on current main 8d76d00240dc48a84697c9545c4ac5ca1d42af2d (which includes PRs 1106 and 1113). The expected build.kts conflict was resolved to this PR's buildtest.embedded:buildtest-embedded:0.0.69270608. That POM returned HTTP 404 at 16:23 UTC, so the coordinate remains unpublished. The PR description was updated through REST PATCH because gh pr edit uses a deprecated GraphQL field.

Validation and reviews

  • Red-first closeDuringRunSnapshotLockAcquisitionPreservesRestart: 0/1 before the fix, with empty stderr; 1/1 after the fix.
  • closeReportsUnexpectedRunWorkerFailureWithoutTerminalizing: 1/1 locally; both public diagnostic tests together passed 2/2 on the final committed source.
  • First remote shutdown-family batch: 6/6 at https://buildtest.kotlin.build/run?id=6be5f17b. Seven-test batch including both diagnostic tests: 7/7 at https://buildtest.kotlin.build/run?id=96a58f61. The seven-test batch was uploaded before the final one-line reporter calls in resumed/upload paths; the final-source local 2/2 run compiled those calls. The current-head shards provide the full integration gate.
  • Prior head a7576b1d9 passed 2790/2790 across four shards plus bld-build at https://github.com/CodexCoder21Organization/BuildTestEmbedded/actions/runs/36326864507.
  • Dedicated final-diff test review checked public API, local dependencies, temp-directory cleanup, exact diagnostic content, deduplication, and successor recovery. Dedicated adversarial code review traced close-time catch paths, found the additional resumed/sharded/upload gaps, and addressed them. No test timeout, iteration count, or assertion was weakened. git diff --check passed.

Remote refs and unmerged state

Work Full URL Verified state
Implementation PR https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1109 OPEN/DRAFT, unmerged, head 8dbb8564a4e3b9c14649ff1ec7180e9ff4ebd4ff
Implementation branch https://github.com/CodexCoder21Organization/BuildTestEmbedded/tree/wip/journal-generation-fencing-W54 Pushed at 8dbb8564a4e3b9c14649ff1ec7180e9ff4ebd4ff
Earlier implementation backup https://github.com/CodexCoder21Organization/BuildTestEmbedded/tree/wip/journal-generation-fencing-W57 Pushed at 85d7e8c6a1af2ecaaa8fd1c43da40f40a891d91b
Fail-first evidence https://github.com/CodexCoder21Organization/BuildTestEmbedded/tree/wip/journal-boundary-baseline-W57 Pushed at 39b1c9675d592014ecac8e26d383c7386a0f8e78
W54/W57 evidence https://github.com/CodexCoder21Organization/BuildTestEmbedded/tree/evidence/projection-journal-ownership-W54-W57 Prior ownership proof and gate details
Base main https://github.com/CodexCoder21Organization/BuildTestEmbedded/commit/8d76d00240dc48a84697c9545c4ac5ca1d42af2d Verified current at 16:32 UTC

The F15 checkout had no uncommitted files, stashes, or local-only commits at this snapshot; git worktree list showed only its primary worktree. No production service was deployed, no artifact was published, and no code was merged as part of this work. The unpublished coordinate was checked against the repository; no production endpoint was changed.

Next steps

  1. Recheck the PR state, head SHA, queue status, and all checks. Keep using build-watchman without --to-merged; act on any real failure through a local reproducer and a new push. Do not rerun CI blindly.
  2. When all four shards and bld-build are green on the current head, REST PATCH the PR description with the new run URL and count, then mark it ready via gh pr ready 1109 --repo CodexCoder21Organization/BuildTestEmbedded (or the equivalent GraphQL mutation if needed). Verify OPEN, not queued, not draft, and green. Stop there.
  3. If this handoff remains open after that, complete/archive it through handoff-cli.

The user explicitly prohibited queueing, merging, publishing, deploying, weakening tests, raising timeouts, and a full local suite. The exact local test runner constraint was one local JVM through cx/jvm-slot.sh; the final two-test local run passed. The buildtest WUI briefly returned a cached-view HTTP 503 for an intermediate run while the direct client progressed and passed; preserve runs and use build-watchman evidence before taking action.