Skip to content

🧪 Deno HTTP journal teardown intermittently stalls concurrent verification #407

Description

@taras

Failure

At commit eb23322d3d73efc7054778a5e35f683507502085 on macOS/Deno 2.9.5, the exact committed-tree battery failed twice:

deno task verify

  FAILED  vendor     0s (exit 1)
  FAILED  lint       0s (exit 1)
  FAILED  check      0s (exit 1)
  FAILED  test       1200s (timed out after 20m)
  FAILED  check:jsr  0s (exit 1)
  FAILED  tsc        0s (exit 1)
  FAILED  test:node  0s (exit 1)
  FAILED  test:bun   0s (exit 1)
  FAILED  docs       0s (exit 1)

─── vendor ───
Task vendor:verify deno run --allow-read --allow-write=/tmp --allow-env --allow-run --cached-only --frozen scripts/verify-cloudflare-dofs.ts
verified Cloudflare Computer DOFS 63d363632e558f7e077794988d36ed75017c2a62: 104 recorded files; regenerated with TypeScript 5.9.3

re-run with:
  deno task vendor:verify

also failed: lint
  deno task lint

also failed: check
  deno task check

also failed: test
  deno task test

also failed: check:jsr
  deno task check:jsr

also failed: tsc
  pnpm exec tsc --project tsconfig.node.json --noEmit

also failed: test:node
  pnpm test:node

also failed: test:bun
  bun run test:bun

also failed: docs
  deno task xmd test packages/core/src --raw

The Deno leg is the deadline-triggering command. The remaining commands are reported as failed after the harness cancels the battery.

Intermittence evidence

The identical revision passed the standalone full Deno suite:

deno task test
ok | 419 passed (2904 steps) | 0 failed (7m58s)

During that standalone run, packages/core/tests/guarded-journal.test.ts stalled at the HTTP-backend case and completed at exactly 3m0s. An immediate isolated rerun on the identical revision passed:

deno task test packages/core/tests/guarded-journal.test.ts
ok | 1 passed (5 steps) | 0 failed (83ms)

The HTTP case itself completed in 31ms in isolation. The exact concurrent verifier then reproduced the 20-minute Deno-leg timeout a second time without source changes.

Investigation target

Determine whether DurableStreamTestServer.stop(), the HTTP durable-stream client, a response body, keep-alive connection, or another subprocess/resource prevents Deno test teardown under the repository's concurrent verification load. Preserve the 20-minute deadline and concurrent battery; do not exclude the test or weaken teardown.

Metadata

Metadata

Assignees

No one assigned

    Labels

    flakeIntermittent or timing-sensitive failure that can pass without a code change

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions