fix: forward termination signal#6204
Merged
baszalmstra merged 2 commits intoMay 26, 2026
Merged
Conversation
When a command run via `pixi exec` or `pixi run` is killed by a signal (e.g. SIGSEGV), pixi previously consumed the signal status while waiting on the child and then exited "normally". This hid the shell's "Segmentation fault" diagnostic and, for `pixi exec`, collapsed every signal death to exit code 1. On Unix, after the child terminates from a signal, restore that signal's default disposition and re-raise it on pixi itself. The parent shell then observes the same WIFSIGNALED status it would have from the child directly, printing the familiar diagnostic and reporting exit 128+signal. Fixes prefix-dev#6166.
wolfv
approved these changes
May 26, 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.
Description
pixi execandpixi runpreviously hid signal terminations from the user. When a child process was killed by a signal such as SIGSEGV, pixi silently exited (with code 1 in the case ofpixi exec) and no "Segmentation fault" message reached the terminal. This change makes both commands surface signal terminations the same way the shell would if the command had been run directly.Before:
After:
Fixes #6166
How Has This Been Tested?
Built pixi from this branch and ran the command from the issue against both
pixi execandpixi run(inline and via a task). All three cases now printSegmentation faultand exit with 139, matching plainpython3. Verified that normal exits (0, non-zero like 42) still propagate correctly.AI Disclosure
Tools: Claude
Checklist: