On Sunday 19 October 2008 20:20:56 Ming-Ching Tiew wrote: > After much debugging ( there goes my weekend ! ) as it turns > out the problem I observed has nothing to do with 'thread'. > I am not saying the 'thread' has no problem. I am yet to come > to that part. > > The problem I observerd is confirmed due to daemon() function call. > > The daemon is a little function in the uclibc, if I don't do anything, > after fork(), the parent will exit and it will cause the child to > exit too. If I put a small sleep() in the parent before it calls _exit(), > then the child could survive even after the parent exit.
Ok, it's sounding like a race condition in uClibc's current daemon() implementation, triggered by the parent exiting before the child finishes whatever it's doing in daemon(). However, it doesn't sound like the child process _dies_. Your original bug report involved asterisk creating _lots_ of child processes, when it should only create 3. I'm not sure what the failure behavior is, and would love to be able to recreate it so I can debug it. Do you have a small test case that's not part of the asterisk package but just a program we can compile and run on our own systems? Rob _______________________________________________ uClibc mailing list [email protected] http://busybox.net/cgi-bin/mailman/listinfo/uclibc
