From owner-freebsd-stable@FreeBSD.ORG Fri Oct 10 06:36:03 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67C0D106568F for ; Fri, 10 Oct 2008 06:36:03 +0000 (UTC) (envelope-from david@esn.org.za) Received: from serendipity.wcape.school.za (seren.esn.org.za [196.211.28.252]) by mx1.freebsd.org (Postfix) with ESMTP id 9F8078FC1D for ; Fri, 10 Oct 2008 06:36:02 +0000 (UTC) (envelope-from david@esn.org.za) Received: from intsika.ct.esn.org.za ([196.211.28.250] helo=ct.esn.org.za) by serendipity.wcape.school.za with esmtp (Exim 4.30) id 1KoBbU-000AOW-GC for freebsd-stable@freebsd.org; Fri, 10 Oct 2008 08:36:00 +0200 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Fri, 10 Oct 2008 08:36:00 +0200 Message-ID: In-Reply-To: <20081010042637.GA22356@icarus.home.lan> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Problem with dump stalling Thread-Index: AckqkIyo7OjOCce/S2yNCmeV9p7NyAAEW4/g References: <20081009153613.GB1262@in-addr.com> <20081010042637.GA22356@icarus.home.lan> From: "David Peall" To: X-Antivirus-Scanned: Clean by seren.wcsn.org.za Subject: RE: Problem with dump stalling X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Oct 2008 06:36:03 -0000 After some digging it would appear the patch has not been committed ? From=20 /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 =3D=3D 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 =3D=3D 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