{{ message }}
Report what the launcher logged when a signal test fails - #9079
Merged
Conversation
These tests drive a real subprocess and then throw its output away, so a failure says only what the exit status was. The one line that decides where to look is discarded: _install_release_handlers logs 'received signal N' the moment its handler runs, which separates 'the signal never reached the handler' from 'the handler ran and the process still exited 0'. That matters right now. CI produced the second symptom on a runner carrying the handler fix, and it does not reproduce locally at four cores under -n 4, so the only evidence available is what the child said. Both failure paths report it. The wait is routed through a helper so a launcher that never dies names the handler too, rather than a bare TimeoutExpired; killing first is what lets the pipe reach EOF so the tail can be read. The read happens only after the process has exited, so it cannot block. Verified against two mutations of the handler, one exiting 0 and one returning without dying: each failure now carries '[launch] received signal 15; deleting kernels before exiting'.
Member
Author
This was referenced Aug 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

tests/kaggle/test_launch_cleanup.pydrives a real subprocess, signals it, and then discards its output. When a signal test fails, the message says only what the exit status was.The discarded output contains the one line that decides where to look.
_install_release_handlerslogsreceived signal N; deleting kernels before exitingthe moment its handler runs, so its presence separates two different faults:Why now
CI produced the second symptom on a runner whose checkout carries the handler fix from #9072 (verified against the branch, not assumed). It does not reproduce locally at four cores under
-n 4, across repeated runs. The only evidence that could distinguish those two cases was being thrown away.The change
Both failure paths report the tail:
TimeoutExpired. Killing first is what lets the pipe reach EOF so the tail can be read at all.The read happens only after the process has exited, so it cannot block.
Verification
Against two mutations of the handler, one exiting 0 and one returning without dying, each failure now carries:
No behaviour changes and no bound moves. This is diagnostics only.