← ArchiveArea

BuildTestEmbedded admission-backoff rebase blocked by repeated close timeout

The pull request was rebased onto current main and builds successfully, but its first required admission test timed out twice while BuildTestEmbeddedService.close() waited for worker shutdown. The verified rebased state is preserved on a WIP branch; the pull-request branch was not overwritten.

hf-2026-07-30-buildtestembedded-admission-backoff-rebase-blocked-by-repeated-close-timeout
Completed Jul 31, 2026 · 12:03 UTC This handoff is read-only in ArchiveArea.

Handoff document

Markdown

RE-VERIFY: This is a snapshot from 2026-07-30 08:22 UTC. Before continuing, fetch the current fix/admission-backoff-floor tip and origin/main, and re-check https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/440 with gh pr view; remote state may have changed.

Mission summary

Rebase the admission-backoff work in https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/440 onto current main after https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/444 merged, build it, run only the pull request's eight admission-backoff tests individually, and force-push the pull-request branch only after that verification is green.

What was found and done

  1. Cloned BuildTestEmbedded fresh into the requested checkout and fetched both refs. At start, current main was 43ee11b3527a9696827d660783dfe4adaa4c1816; the pull-request branch was still exactly d540038b93a953b76a62d553e09d093919d2cfc7.
  2. Rebasing the five pull-request commits produced one conflict in the build.kts version/history tail. Main carried history through 0.0.61302 for the prepared performance-test bundle-builder seam; the branch carried the admission-backoff history at 0.0.613.
  3. Resolved that conflict by preserving all main history, appending the admission entry as 0.0.61303, and setting buildtest.embedded:buildtest-embedded:0.0.61303. The other four commits replayed without conflicts.
  4. Confirmed the four deterministic-timing tests changed by the newly merged pull request—including tests/perftestCoRunUploadFailureRetriesAreBoundedAndCollapsed.kts—match origin/main exactly after the rebase. The upload-retry test was not changed.
  5. Refetched and rebased immediately before building. scripts/build.bash buildtest.embedded.buildMaven passed in 517653 ms.
  6. Ran scripts/test.bash --test admissionCapacityReleaseWakesParkedWaiterWithoutAdvancingTheClock twice. Both attempts failed after the forked JVM's 240-second timeout with the exact verdict: Test 'admissionCapacityReleaseWakesParkedWaiterWithoutAdvancingTheClock' timed out after 240000ms, stuck at: buildtest.embedded.BuildTestEmbeddedService.close(BuildTestEmbeddedService.kt:4128).
  7. Stopped before force-pushing the pull-request branch because the required verification gate is not green. The remaining seven requested tests were not run after the repeated failure.

Relevant pull requests and refs

  • Pull request: https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/440
  • Newly merged base change: https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/444
  • Target branch remains at d540038b93a953b76a62d553e09d093919d2cfc7; it was not overwritten.
  • Complete rebased work is preserved at f6ddb1ecf52acad66498d2fe34e50ad03a872419 on: https://github.com/CodexCoder21Organization/BuildTestEmbedded/tree/wip/r29-bte440b-handoff-2026-07-30

Next steps

  1. Clone the WIP branch fresh and reproduce the timeout with the direct file selector: scripts/test.bash --test tests/admissionCapacityReleaseWakesParkedWaiterWithoutAdvancingTheClock.kts
  2. Capture the forked JVM's full thread dump near the timeout and identify which service-owned worker BuildTestEmbeddedService.close() is joining. The current runner summary names only close() line 4128, which is the method entry rather than the specific join.
  3. Determine why cancellation/close does not terminate that worker on the rebased combined tree. Do not loosen the 240-second test timeout.
  4. Once this test passes reliably, run the other seven files individually:
    • tests/admissionFleetShrinkWakesRecoveredReservedWaiterWithoutAdvancingTheClock.kts
    • tests/admissionRetryCadenceIsBoundedByBackoffNotWakeRate.kts
    • tests/admissionUnreservedShrinkWakesParkedWaiterWithoutAdvancingTheClock.kts
    • tests/admissionWaitsForFirstFleetObservation.kts
    • tests/cancelAfterFailedBootAdmissionReparkCancelsPromptly.kts
    • tests/cancelDuringAdmissionWaitCancelsPromptly.kts
    • tests/e2eTerminalReservationReleaseIsIdempotentAfterLateWorkerExit.kts
  5. Refetch and rebase current main again, rebuild, and repeat the eight-file gate. Only after it is green, force-push fix/admission-backoff-floor with --force-with-lease. Do not enqueue or merge.

Reusable operational knowledge

  • Use direct tests/*.kts paths for this gate. Selecting by function name makes the local runner discover and compile the full 865-test workspace before running one test.
  • The current build and test runner print many existing dependency-version and classpath warnings; rely on the final process exit and [SUCCESS]/TESTS FAILED verdict.
  • The newly merged performance-test change is separate from the repeated shutdown timeout and should remain untouched.