BUG: NTPL: waitpid() doesn't return?

Roland McGrath roland at redhat.com
Sat Jan 31 14:53:43 UTC 2004

> I use Debian 4.5-1. Is there a newer version?

There is a fix in 4.5.1 that may be relevant.  Debian made it harder for me
to upload packages, so I think I failed to do so for the 4.5.1 release.
You can also build strace from the current cvs.strace.sourceforge.net
sources, though the unreleased fixes since 4.5.1 are unlikely to matter to you.

> Hmm. What triggers strace to stop (or not) processes which do waidpid()?

strace tries to prevent a thread from entering a wait4 system call when
that call might return ECHILD due to a process being ptrace'd by strace.
(That's the goofy ptrace semantics I mentioned earlier.)  strace is
imperfect in doing this, and was even worse before 4.5.1.

> Not using strace is a bit difficult, as exhibited by the fact that a
> program's fork() call is translated to a clone() by glibc, so I can't
> see what's happening.

You can always read the source to know what it does.

> Anyway, on my dual PIII here, tracing the attached program is
> highly nondeterministic -- in that it sometimes crashes:

Please try the current strace from cvs just in case of any wonkiness there.
If it still happens, then we have something unpleasant to figure out.

How much of the time does the problem hit for you?


More information about the Strace-devel mailing list