On 04/04, Roland McGrath wrote:Heh. You are right, the current kernel has the same (minor) bug. I beleive it was introduced by b2b2cbc4b2a2f389442549399a993a8306420baf. Before this patch we notified the new parent even if it is from the same thread group. If SIGCHLD is ignored, do_notify_parent() sets ->exit_signal = -1, and then forget_original_parent() notices this and adds the child to ptrace_dead. Now we don't notify the parent, and so the child "hangs". However, now I think your patch adds a more serious problem, we can really leak a zombie. Suppose that that we are ->real_parent, the child was traced by us, it is zombie now, and the child is not a group leader. No matter who is the new parent, no matter what is the state of SIGCHLD, we must not reparent the child: nobody can release it except us. It is not traced any longer, its ->exit_signal == -1, eligible_child() doesn't like this. No? Well, I was thinking about another thread (the new parent) sleeping in do_wait(__WNOTHREAD)... not sure this really matters, though. But, Yes, I missed this. The second signal doesn't look right. Yes, yes, I agree. I just wanted to be sure you didn't miss this bug. Oleg. --
| Greg KH | Og dreams of kernels |
| Jens Axboe | [PATCH 31/33] Fusion: sg chaining support |
| Arnd Bergmann | Re: finding your own dead "CONFIG_" variables |
| Mark Brown | [PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset |
| Tony Breeds | [LGUEST] Look in object dir for .config |
git: | |
| Brian Downing | Re: Git in a Nutshell guide |
| John Benes | Re: master has some toys |
| Matthias Lederhofer | [PATCH 4/7] introduce GIT_WORK_TREE to specify the work tree |
| Alexander Sulfrian | [RFC/PATCH] RE: git calls SSH_ASKPASS even if DISPLAY is not set |
