Skip to content

Shell integration tests can exhaust shared outer deadlines #7448

Closed

Description

@oliver-mee

Client or integration

Other

Area

Other

Summary

Two shell-integration tests share an outer deadline across several real subprocess invocations. The SSH discovery fixture can exceed Bun's default five-second test deadline before it exhausts its candidate list. The release-gates aggregate test can similarly exhaust a 30-second matrix-wide deadline under load, even though each individual Bash invocation is bounded.

Expected: each scenario completes or reports its own bounded child failure, with the existing candidate-order, argument-fidelity and gate-policy assertions intact. Actual: the SSH case returns a null exit status after Bun kills a dangling process, rather than the expected exit 127; a prior exact-base validation also observed the CI matrix expiring at 30 seconds.

Reproduction

On unmodified dev commit 12025981e5a304cdb6b1b54f525ba8554f623977, use Bun 1.4.3 through the repository's isolated runner:

bun run test --parallel=1 \
  ./tests/ci-workflows/ci-review-lanes.test.ts \
  ./tests/clients/link-ssh-argv-discovery.test.ts

The fresh run produced 18 passes and 1 failure. remote sh reports missing when all candidates are absent or fail --version timed out at 5,024 ms: expected exit 127, received null. The late winning-candidate case took 4,955 ms, close to the same outer deadline.

The CI matrix passed in this fresh run (4,651 ms), but previously failed on this exact base under concurrent load when all combinations shared one 30-second test. This part is load-sensitive, not claimed as a deterministic failure on an idle machine.

Version

12025981e5a304cdb6b1b54f525ba8554f623977

Operating system

macOS 26.6.2, arm64; Bun 1.4.3

Provider and model

Not provider-specific. No model requests are needed.

Logs or error output

killed 1 dangling process
Expected: 127
Received: null
(fail) remote sh reports missing when all candidates are absent or fail --version
this test timed out after 5000ms
18 pass
1 fail

Screenshots and supporting files

Not applicable; this is a subprocess test-runner failure.

Redacted configuration

No user configuration required. The repository runner uses isolated HOME and client configuration directories.

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Activity

  1. github-actions commented on Oct 20, 2026

    @github-actions
    Contributor

    Automated translation bookkeeping — detected language: English.

  2. Ingwannu commented on Oct 21, 2026

    @Ingwannu
    Owner

    The matching fix is #7449. I independently ran both affected files at its exact head 7c2302ec5b9ddd7711add2f94ee2d28c116c15a7 on Linux/Bun 1.4.3 with fresh homes and hard CPU/memory/process limits: 78 passed, 0 failed. The real shell/argv and checked-in gate assertions are retained, with independent scenario deadlines. Functional CI execution has now been approved; the issue remains open until a verified dev landing. This does not establish that every idle-host baseline run fails or that production routing changed.

  3. lidge-jun commented on Oct 22, 2026

    @lidge-jun
    Owner

    Closing: fixed by #7449 ("test: bound shell integration scenarios independently"), merged to dev on 2026-10-21. Each shell integration scenario now has its own bound instead of sharing the outer deadline. Reopen if it recurs on current dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions