You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The file descriptor will be closed if there are no more processes attached to it, but if the initial payload process spawns a child process before being killed, and that child process inherits the standard out of the payload process, then after the kill there will still be a process attached to the stdout fd, so it will not be closed.
I can try to put up a test for this, but I probably won't get to it for a while.
If we cancel the read threads, what would be keeping us from leaking the child processes? I feel like the main issue here is that those aren't being killed and not us continuing to read from them.
The implementation of timeout implemented in #92 does not work as intended for payload processes with children.
Namely, it will get stuck here:
waiting for the stdout to EOF, while the "grandchild" process happily keeps that fd open indefinitely.
In order to behave as expected, we need to explicitly kill all transitive children of the payload process here:
or at least apply some sort of timeout logic on the read threads.
cc @epage
The text was updated successfully, but these errors were encountered: