Skip to content

[Bug]: SubagentRunIdChainTest times out intermittently on windows-latest (the 10s .block() deadline has only a ~1.5x margin) #3505

Open

Description

@wahllllll

What happens

SubagentRunIdChainTest.subagentInheritsAutoGeneratedParentRunId intermittently fails on the build (windows-latest) job:

[ERROR] Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 12.27 s <<< FAILURE! -- in io.agentscope.harness.agent.SubagentRunIdChainTest
[ERROR] io.agentscope.harness.agent.SubagentRunIdChainTest.subagentInheritsAutoGeneratedParentRunId -- Time elapsed: 10.45 s <<< ERROR!
[ERROR]   SubagentRunIdChainTest.subagentInheritsAutoGeneratedParentRunId:191->runParentCall:177 » IllegalState Timeout on blocking read for 10000000000 NANOSECONDS

The failing line is .block(TIMEOUT) in runParentCall (SubagentRunIdChainTest.java:177), with

private static final Duration TIMEOUT = Duration.ofSeconds(10);

Observed runs:

Why I think the deadline is the problem, not a hang

I checked out origin/main (707400eb9) and ran the class locally (JDK 17, Windows, idle machine):

SubagentRunIdChainTest   Tests run: 2, Failures: 0, Time elapsed: 7.120 s
  subagentInheritsExplicitlySuppliedChainRunId   6.477 s
  subagentInheritsAutoGeneratedParentRunId       0.594 s

So normal runs of this class already reach 6.5 s against a 10 s ceiling — a 1.5x margin, with a first-test warm-up cost that varies run to run (in the failing CI run the sibling test took 1.823 s, i.e. the two tests swap which one is slow). Nothing in the test is stub-free: the model is a mock, so there is no network or model latency to blame.

I did not prove whether the extra time is JVM warm-up, thread-pool contention with other harness tests in the same JVM, or plain Windows-runner load — only that the constant leaves almost no headroom for any of them. If you would rather hunt the cost down than widen the margin, the measurement above is the starting point; I am not claiming the timeout is the root cause of the slowness, only that it is too close to the observed runtime.

Precedent in this repo

ChatSessionsTest hit the same class of problem and was fixed by widening the deadline with a comment, rather than by re-running:

// Two durable turns with streamed output can exceed 15 seconds on Windows runners.
var done = await(sessions, ..., Duration.ofSeconds(60));

agentscope-harness/src/test/java/io/agentscope/harness/agent/SubagentRunIdChainTest.java has no open PR touching it, and no existing issue mentions it.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions