Repository navigation
fix: allow fire-and-forget child processes - #1737
Merged
Merged
Conversation
Contributor
PR Review SummarySize
Affected crates
Blast radius — ContainedThis PR touches: source code Updated automatically on each push to this PR. |
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 26, 2026 13:08
1084400 to
d9051f3
Compare
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 26, 2026 14:19
d9051f3 to
fa01fe6
Compare
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 26, 2026 15:40
fa01fe6 to
2f06eb6
Compare
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 27, 2026 12:58
2f06eb6 to
057423a
Compare
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 27, 2026 12:58
057423a to
52c9101
Compare
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 27, 2026 13:43
52c9101 to
c915bae
Compare
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 27, 2026 14:33
c915bae to
aa8aacc
Compare
kurtisc
marked this pull request as ready for review
August 27, 2026 15:13
Member
|
@panga Might be worth a look to ensure it fixes your issue and workflow with Nono :) |
Contributor
|
I just tested this branch and it still didn't fix my issue, I found in the audit the same error Please note this is not a bash, it is a process tree like this: |
Exercises `parent` backgrounding `child` and exiting immediately. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
Mediated launches call setsid() pre-exec and record its session id, so a severed caller still resolves to the command that launched it. The session table is bounded with least-recently-used eviction. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
Track each mediated child's requester pid and process group on ActiveChild, and relay SIGINT/SIGTERM/SIGHUP/ SIGQUIT to only the mediated children whose requester belongs to the terminal's current foreground process group. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
resolve_url_open_command did the same parent-pid ancestry walk as resolve_caller_with but lacked the session-lineage fallback the latter already has, so a command whose lineage was severed (e.g. a backgrounded launcher that already exited) was correctly attributed for command execution but still denied when it tried to open a URL. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
kurtisc
force-pushed
the
kurtisc/fire-forget
branch
from
August 28, 2026 15:19
aa8aacc to
752405f
Compare
Contributor
Author
|
Hi @panga, apologies the first attempt didn't solve your problem. I've pushed an update, but the previous version also passed the repro steps on my machine. Would you be able to test this update too? Thanks |
Contributor
|
@kurtisc it worked like a charm. great work! |
levonk
pushed a commit
to levonk/nono
that referenced
this pull request
Sep 4, 2026
* test(cli): repro fire-and-forget denial (nolabs-ai#1274) Exercises `parent` backgrounding `child` and exiting immediately. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai> * fix(cli): attribute severed macOS orphans (nolabs-ai#1274) Mediated launches call setsid() pre-exec and record its session id, so a severed caller still resolves to the command that launched it. The session table is bounded with least-recently-used eviction. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai> * fix(cli): relay Ctrl-C/Ctrl-Z to setsid'd mediated children Track each mediated child's requester pid and process group on ActiveChild, and relay SIGINT/SIGTERM/SIGHUP/ SIGQUIT to only the mediated children whose requester belongs to the terminal's current foreground process group. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai> * fix(cli): resolve URL-open requests via session lineage resolve_url_open_command did the same parent-pid ancestry walk as resolve_caller_with but lacked the session-lineage fallback the latter already has, so a command whose lineage was severed (e.g. a backgrounded launcher that already exited) was correctly attributed for command execution but still denied when it tried to open a URL. Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai> --------- Signed-off-by: Kurtis Charnock <kurtis@nolabs.ai>
1 task
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.
Linked Issue
Closes #1274
Summary
MacOS only, as Linux doesn't detach these children.
Test Plan
New integration test
Steps to reproduce
Checklist