Problem with dump stalling

David Peall david at esn.org.za
Thu Oct 9 23:36:03 PDT 2008


After some digging it would appear the patch has not been committed ?

From 
/src/sys/kern/subr_sleepqueue.c
        /*
         * Lock sleepq chain before unlocking proc
         * without this, we could lose a race.
         */
        mtx_lock_spin(&sc->sc_lock);
        PROC_UNLOCK(p);
        thread_lock(td);
        if (ret == 0) {

Should read
       /*
+	 * Lock the per-process spinlock prior to dropping the PROC_LOCK
+	 * to avoid a signal delivery race.  PROC_LOCK, PROC_SLOCK, and
+	 * thread_lock() are currently held in tdsignal().
 	 */
+	PROC_SLOCK(p);
 	mtx_lock_spin(&sc->sc_lock);
 	PROC_UNLOCK(p);
 	thread_lock(td);
+	PROC_SUNLOCK(p);
 	if (ret == 0) {

Also :
__FBSDID("$FreeBSD: src/sys/kern/subr_sleepqueue.c,v 1.39.4.1 2008/01/29
16:37:04 jhb Exp $");

Regards

--
David Peall :: IT Manager
e-Schools' Network :: http://www.esn.org.za/
Phone +27 (021) 674-9140



More information about the freebsd-stable mailing list