This issue was generated automatically by Claude Code (Anthropic's AI coding agent) running a scheduled CI-triage routine on behalf of @FrankChen021. Analysis and suggested fixes are AI-produced; please verify before acting on them.
Status: Resolved by #20453
Subject: SeekableStreamSupervisorStateTest.testSupervisorStopTaskGroupEarly (indexing-service, unit tests (25, S*))
Failures: 2 · First seen: 2026-09-10 · Last seen: 2026-09-15
Root cause
Race: the test treats getNoticesQueueSize() == 0 as "handoff notice handled". The notice thread poll()s the notice before calling handle(), so the queue can be empty before handoffEarly is set. runInternal() then never calls TaskQueue.shutdown("id1", ...), and EasyMock reports expected: 1, actual: 0. Under load it fails all 4 surefire attempts.
Suggested fix
In TestSeekableStreamSupervisor, override emitNoticeProcessTime to count down a CountDownLatch for handoff_task_group_notice. Replace the while (getNoticesQueueSize() > 0) sleep loop with latch.await(timeout). #20453 implemented this and merged on 2026-09-30.
Occurrences
Failed push-triggered master jobs only. The daily triage routine adds one row per new failed job.
This issue was generated automatically by Claude Code (Anthropic's AI coding agent) running a scheduled CI-triage routine on behalf of @FrankChen021. Analysis and suggested fixes are AI-produced; please verify before acting on them.
Status: Resolved by #20453
Subject:
SeekableStreamSupervisorStateTest.testSupervisorStopTaskGroupEarly(indexing-service,unit tests (25, S*))Failures: 2 · First seen: 2026-09-10 · Last seen: 2026-09-15
Root cause
Race: the test treats
getNoticesQueueSize() == 0as "handoff notice handled". The notice threadpoll()s the notice before callinghandle(), so the queue can be empty beforehandoffEarlyis set.runInternal()then never callsTaskQueue.shutdown("id1", ...), and EasyMock reportsexpected: 1, actual: 0. Under load it fails all 4 surefire attempts.Suggested fix
In
TestSeekableStreamSupervisor, overrideemitNoticeProcessTimeto count down aCountDownLatchforhandoff_task_group_notice. Replace thewhile (getNoticesQueueSize() > 0) sleeploop withlatch.await(timeout). #20453 implemented this and merged on 2026-09-30.Occurrences
Failed push-triggered master jobs only. The daily triage routine adds one row per new failed job.
unit tests (25, S*)TaskQueue.shutdownexpected 1, actual 0; 4/4 attemptsunit tests (25, S*)