[PATCH] Fix error when judging if process has children
Dmitry V. Levin
ldv at altlinux.org
Thu Aug 12 22:51:10 UTC 2010
On Mon, Aug 09, 2010 at 06:32:44PM -0700, Roland McGrath wrote:
> > There is a possibility to count a process with both CLONE_THREAD and
> > CLONE_DETACHED flags set twice, but I'm doubt that such a combination of
> > CLONE_ flags is real, since CLONE_DETACHED is officially no-op in kernel
> > for a very long time. Maybe it would be even better to drop this
> > nclone_detached completely from strace.
> CLONE_DETACHED is indeed obsolete. But when it existed, CLONE_THREAD and
> CLONE_DETACHED both being set was the norm. I don't think CLONE_DETACHED
> really matters to strace's logic. CLONE_THREAD is what indicates that
> exit_group syscalls and fatal signals will kill all sibling threads.
> But one should double-check how nclone_detached is being used in strace.
There are exactly two places in the strace code where nclone_detached is
checked. First one is that calculation of got_kids in internal_wait()
where, if I got all right, nclone_detached should not be taken into
account since linux 2.6.2. Second one is handle_group_exit() where
nclone_detached is used only if CLONE_THREAD is not in effect;
in that case, the use seems to have no consequences.
That is, I think that nclone_detached could be safely removed: it would be
a no-op change besides a fix for CLONE_THREAD|CLONE_DETACHED handling in
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: not available
More information about the Strace-devel