-
-
Notifications
You must be signed in to change notification settings - Fork 422
Rebootstrap on 0.12.8 #4570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rebootstrap on 0.12.8 #4570
Conversation
Should fix the rebootstrap problems found in #4545 and #4570 that seems to be caused by a mistake in this backport #4504. Not sure why this causes a hang, but for now just fixing it to revert to the previous semantics Tested manually via ```bash ./mill dist.installLocal git checkout main ./mill-assembly.jar 'integration.invalidation[selective-execution].local.fork.test' mill.integration.SelectiveExecutionWatchTests.watch.changed-code ``` Doing this manually on `0.12.x` hangs, whereas doing it on this PR succeeds
|
Seems like the problem is this |
|
The issue appears to be the Mill subprocess spawned in the test in mill/integration/invalidation/selective-execution/src/SelectiveExecutionTests.scala Lines 199 to 206 in f83a950
In client-server mode, when the test is done, the process is terminated by the mill/testkit/src/mill/testkit/IntegrationTester.scala Lines 146 to 161 in f83a950
However in fork mode, there isn't any mechanism to terminate the Mill subprocess, which continues running in that Future indefinitely. This probably only become an issue in #4456 due to subtle changes about how the |
|
One bug is the bincompat forwarders upstream in OS-Lib have the wrong default set for |
|
Upstream fix for OS-Lib com-lihaoyi/os-lib#357 |
|
Seems the underlying problem was bugs in |
eb46ba3 to
f2dbb98
Compare
…, use it in integration test cleanup (#4587) This attempts to fix some of the residual flakiness encountered in #4570 Somehow the recursive process termination we pulled in from upstream com-lihaoyi/os-lib#359 only works some of the time, and other times the processes get leaked. This PR extends the `serverId`-file-deleted shutdown logic we already used for client-server mode and enables it for `--no-server` mode as well. This lets us put an additional guardrail in our `IntegrationTester#close` to delete any such files, to try and force any Mill processes to terminate. Added an additional integration test to exercise this behavior Also fixed a bug in `ExampleTester` not honoring the `clientServerMode` flag, and update `testkit.test` to assert on those behaviors
Pulls in com-lihaoyi/os-lib#359 from upstream to fix a problem with leaked processes causing hangs