mirror of
https://github.com/sbt/sbt.git
synced 2026-10-06 18:14:04 +02:00
**Problem** When a forked test JVM exits, WorkerProxy.watch calls notifyExit right away, and on exit code 0 that completes the run. If the response reader has not consumed the rest of the stream yet, the remaining events, logs and the final response are dropped, and the build passes with failing tests unreported. Slow listeners, or several forks at once, make this likely. **Solution** Track when the response stream reaches end of input (the socket reader for Tcp/Ipc, stdout for Stdio), and have the watch thread wait for it, with a bound, before calling notifyExit. This is what sbt 1.x did by joining the acceptor thread. The new scripted test uses a listener that sleeps per event, and fails without this change. Fixes #9859 Generated-by: Claude Opus 5.5 Co-authored-by: Eugene <[email protected]>