From owner-freebsd-current Thu Jan 13 11:37: 1 2000 Delivered-To: freebsd-current@freebsd.org Received: from overcee.netplex.com.au (overcee.netplex.com.au [202.12.86.7]) by hub.freebsd.org (Postfix) with ESMTP id B46F214F10 for ; Thu, 13 Jan 2000 11:36:53 -0800 (PST) (envelope-from peter@netplex.com.au) Received: from netplex.com.au (localhost [127.0.0.1]) by overcee.netplex.com.au (Postfix) with ESMTP id C380F1CA0; Fri, 14 Jan 2000 03:36:51 +0800 (WST) (envelope-from peter@netplex.com.au) X-Mailer: exmh version 2.1.1 10/15/1999 To: djb@relativity.student.utwente.nl Cc: current@freebsd.org Subject: Re: softupdates still broken! In-Reply-To: Message from "Dave J. Boers" of "Thu, 13 Jan 2000 20:29:35 +0100." <20000113202935.A376@relativity.student.utwente.nl> Date: Fri, 14 Jan 2000 03:36:51 +0800 From: Peter Wemm Message-Id: <20000113193651.C380F1CA0@overcee.netplex.com.au> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG "Dave J. Boers" wrote: > It is rumoured that Peter Wemm had the courage to say: > > Warning: softupdates is still falling over quite easily: > > (I run with INVARIANTS) > > > > initial pcb at 31f9e0 > > panicstr: softdep_lock: lock held by 412 > > panic messages: > > --- > > panic: softdep_disk_write_complete: lock is held > > > > syncing disks... panic: softdep_lock: lock held by 412 > > Uptime: 3m17s > > I second that. Same panic, system can't even stay alive for more than 3 > minutes after booting. Same version of ffs_softdep.c: 1.49. I have committed an unreviewed patch that fixes it for a number of folks. You might like to try this if you can't wait for cvsup. (boot single user and turn softupdates off until you recompile). Index: ffs_softdep.c =================================================================== RCS file: /home/ncvs/src/sys/contrib/softupdates/ffs_softdep.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- ffs_softdep.c 2000/01/13 07:20:01 1.49 +++ ffs_softdep.c 2000/01/13 18:48:12 1.50 @@ -4563,7 +4563,9 @@ if (waitfor != MNT_WAIT) return (0); bp->b_xflags |= BX_BKGRDWAIT; + FREE_LOCK_INTERLOCKED(&lk); tsleep(&bp->b_xflags, PRIBIO, "getbuf", 0); + ACQUIRE_LOCK_INTERLOCKED(&lk); if (bp->b_xflags & BX_BKGRDINPROG) panic("getdirtybuf: still writing"); continue; Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message