Thread (1 message) 1 message, 1 author, 2018-12-06

Re: [PATCH v4] signal: add taskfd_send_signal() syscall

From: Florian Weimer <hidden>
Date: 2018-12-06 13:17:20
Also in: linux-api, linux-fsdevel, lkml

Possibly related (same subject, not in this thread)

* Christian Brauner:
On Thu, Dec 06, 2018 at 01:30:19PM +0100, Florian Weimer wrote:
quoted
* Christian Brauner:
quoted
/* zombies */
Zombies can be signaled just as any other process. No special error will be
reported since a zombie state is an unreliable state (cf. [3]).
I still disagree with this analysis.  If I know that the target process
is still alive, and it is not, this is a persistent error condition
which can be reliably reported.  Given that someone might send SIGKILL
to the process behind my back, detecting this error condition could be
useful.
Apart from my objection that this is not actually a reliable state
because of timing issues between e.g. calling wait and a process
exiting
The point is that if you are in an error state, the error state does not
go away, *especially* if you do not expect the process to terminate and
have not arranged for something calling waitpid on the PID.
I have two more concerns and one helpful suggestion.
First, this is hooking pretty deep into kernel internals. So far
EXIT_ZOMBIE is only exposed in kernel/exit.c and I don't see enough
value to drag all of this into kernel/signal.c
Second, all other signal syscalls don't do report errors when signaling
to zombies as well.
They cannot do this reliably because the error state is not persistent:
the PID can be reused.  So for the legacy interface, a difference in
error signaling would just have encouraged a bad programming model.
It would be odd if this one suddenly did.
I don't think so.  My point is that the FD-based mechanism finally
allows to cope with this in a reasonable way.
Third, if this really becomes such a big issue for userspace in the
future that we want to do that work then we can add a flag like
TASKFD_DETECT_ZOMBIE (or some such name) that will allow userspace to
get an error back when signaling a zombie.
I can live with that.

Thanks,
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help