lkml.org 
[lkml]   [2001]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectwait() and strace -f
I got a weird problem here.  I have a process that creates 2
childs, the first one dies very fast before the parent can call
wait(). When I strace -f this wait() doesn't clean up the zombie
as it should.

Note that this problem only happens when I have 2 childeren, use
strace -f, and call wait after the first child died. Just
strace, without strace, only 1 child, or call wait() after the
child died doesn't seem to cause the problem.

Btw, this is with 2.4.16.

Simple program to demostrate it:

int main()
{
int i;

if (!fork())
{
/* Child 1. */
return 0;
}

if (!fork())
{
/* Child 2. */
sleep(10);
return 0;
}

/* Parent. */
sleep(1);
wait(&i);
return 0;
}

Without strace -f, this program stops after 1 second and the
second child still lives for 9 seconds. With strace -f this
program stops after 10 second after the second child died.

I think it's related to strace being the "real" parent of the
child. But that doesn't really explain why I need 2 childs.


Kurt

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:14    [W:0.062 / U:0.220 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site