Skip to content

Dev CI red at 1c441d9a: readiness-cutoff reap test (#6126) returns terminal_uncertain under full shard #6143

Description

@probepark

Summary

Dev CI is red at 1c441d9a (merge of #6126). The previous dev run at 98fab059 was green: https://github.com/Yeachan-Heo/gajae-code/actions/runs/36574549305. The range 98fab059..1c441d9a contains only #6126, which touches packages/coding-agent/src/sdk/broker/lifecycle.ts (+321/-204), test/sdk-broker-lifecycle-e2e.test.ts, and a changelog fragment.

Failing run: https://github.com/Yeachan-Heo/gajae-code/actions/runs/36580791654

Failures

  1. test:@gajae-code/coding-agent:shard-6-of-8 runs sdk-broker-lifecycle-e2e.test.ts › createExternal reaps a synchronous Atomics.wait extension when readiness expires. This test was added by fix(sdk): reap unregistered hosts at readiness cutoff #6126. The expected result was certainty: "retryable", error.code: "readiness_timeout". The received result was certainty: "uncertain", error.code: "terminal_uncertain", with the message "Lifecycle startup cleanup could not be proven ... spawned process could not be verified dead" (lifecycle.ts:6980). On the fix(sdk): reap unregistered hosts at readiness cutoff #6126 head 850a0fc6, the targeted job passed. When the same test ran inside the full shard on the merge commit, the broker hit the unproven-exit path this PR was meant to remove.
  2. test:@gajae-code/coding-agent:shard-8-of-8 runs sdk-lifecycle-terminal-evidence.test.ts › returns the real terminal outcome when a slow spawn is stamped by a concurrent recovery. The expected message contained "Lifecycle startup cleanup could not be proven ... Original launch failure: Session". The received message was "Lifecycle terminal evidence could not be verified after persistence" (broker.ts:5178). The test file and broker.ts are unchanged in the range. broker.ts imports ./lifecycle, which did change.
  3. test:packages/coding-agent/test/sdk-broker-restart.test.ts › allows one owner during simultaneous primary lock takeover failed with Broker lock is held by a live owner (broker.ts:3820). The test file and broker.ts are unchanged in the range. This may be an unrelated timing flake, but it cannot be excluded because broker.ts depends on the changed lifecycle.ts.

Blob comparison (green 98fab059 vs red 1c441d9a)

path green red
src/sdk/broker/lifecycle.ts 23a00e5dc846 6c89b515169f (DIFF)
test/sdk-broker-lifecycle-e2e.test.ts c595042a90d6 0dbae9e1f0d9 (DIFF)
src/sdk/broker/broker.ts 91629e241226 91629e241226
test/sdk-broker-restart.test.ts 7895fb277f45 7895fb277f45
test/sdk-lifecycle-terminal-evidence.test.ts 8f0bb352c59c 8f0bb352c59c

Assessment

At least failure 1 is attributable to #6126. The new readiness-cutoff reap test is not stable under full-shard load: exit proof still misses within the budget, and the broker falls back to terminal_uncertain. Failure 2 exercises the same cutoff/recovery interplay in lifecycle.ts. The evidence here comes from CI logs and a blob diff. No local reproduction has been done yet.

Suggested next step

Re-run the red shards on dev. If shard-6 fails again, the options are to tighten the proof budget handling in lifecycle.ts or to revert #6126. 008f7b14 (#6135) also modifies lifecycle.ts, so its Dev CI run will show whether that change also affects this.

Activity

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

    P1High prioritybugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions