mirror of
https://github.com/sbt/sbt.git
synced 2026-09-03 16:39:24 +02:00
The thin client's blockUntilStart loop recursed while the portfile was missing and the forked process looked valid, with no deadline: a forked server that died before writing project/target/active.json, or stayed alive but wedged, hung the client forever with no output. On Windows the check ignored process death entirely (Properties.isWin short-circuited the liveness test), making the hang unconditional there. The wait is now bounded (default 5 minutes, tunable with -Dsbt.client.boot.timeout.seconds). On expiry the client fails with a "did not start within N seconds" message and then prints the server's captured stderr, instead of hanging silently (#9484). The Windows liveness workaround is preserved; the deadline is what bounds it. Generated-by: kimi-code/k3 (Oh My Pi)
468 B
468 B
Fixes
- Don't hang forever when a forked sbt server never writes its portfile. The thin client now bounds the connect wait to 5 minutes (tunable with the
SBT_CLIENT_CONNECT_TIMEOUTenvironment variable, in seconds), then fails with a "did not start within N seconds" message followed by the server's captured stderr. Previously the wait was unbounded, and on Windows it ignored process death entirely. Addresses #9484.