Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Nov 2004 16:28:31 -0600
From:      Dan Nelson <dnelson@allantgroup.com>
To:        Marc Ramirez <marc.ramirez@bluecirclesoft.com>
Cc:        Mike Makonnen <mtm@identd.net>
Subject:   Re: [FreeBSD 5.3-RC2] Processes STILL hanging in unkillable state
Message-ID:  <20041104222831.GD10428@dan.emsphone.com>
In-Reply-To: <200411041634.39570.marc.ramirez@bluecirclesoft.com>
References:  <200411032312.50664.marc.ramirez@bluecirclesoft.com> <20041104143644.GA36101@rogue.acs.lan> <200411041634.39570.marc.ramirez@bluecirclesoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Nov 04), Marc Ramirez said:
> On Thursday 04 November 2004 09:36 am, Mike Makonnen wrote:
> > Hmm, looks like the application is using libthr and not libpthread.
> > I'll take a look at it, but in the mean time you might want to map
> > libthr and libc_r to libpthread in libmap.conf(5).
> >
> > Can all other users with this problem verify which threading
> > library they're running? You can use the following command on the
> > binary. For example: # ldd /path/to/binary
> 
> Not me.  Thanks!

I just noticed this on my machine as well (SMP, 5.3-stable as of
yesterday), running a testsuite program linked to libpthreads.  It
creates 10 threads whose only job is to fork(), exec /bin/sleep, kill
-9 the child, and wait for the status.  Each thread does this 1000
times in a tight loop.  Occasionally the whole thing will end up
STOPped, but resumes within 60 seconds.  If I ktrace the process during
this, I see a long delay followed by:

 39117 pike     RET   fork 0
 32592 pike     RET   fork 39117/0x98cd

Could there be a race or deadlock within the kernel's fork() routines?
What happens if two threads on different CPUs decide to fork at the
same time?

-- 
	Dan Nelson
	dnelson@allantgroup.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041104222831.GD10428>