Re: ZFS panic: System call unlink returning with 1 locks held

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Fri, 27 Jul 2007 16:56:34 -0400
On Fri, Jul 27, 2007 at 03:08:26PM -0500, Dan Nelson wrote:
> In the last episode (Jul 21), Thierry Herbelot said:
> > with a recent -current -built yesterday), I just got a panic while 
> > rebuilding -j4 the world and portupgrading firefox.
> >
> > the machine is pretty much memory limited (only 320 MB of RAM), with
> > two CPUs, running a straight GENERIC kernel, including WITNESS and
> > INVARIANTS.
> [..]
> > the panic message is :
> > 
> > panic: System call unlink returning with 1 locks held
> > cpuid = 0
> > KDB: enter: panic
> > [thread pid 42789 tid 100102 ]
> > Stopped at      kdb_enter+0x32: leave
> > db> where
> > Tracing pid 42789 tid 100102 td 0xc2ce3200
> > kdb_enter(c0a92bc5,0,c0ac0a31,d5457c8c,0,...) at kdb_enter+0x32
> > panic(c0ac0a31,c0a98f5c,1,c0a98f5c,c0b3f030,...) at panic+0x124
> > syscall(d5457d38) at syscall+0x46e
> > Xint0x80_syscall() at Xint0x80_syscall+0x20
> 
> I've been seeing this, as late as on a Jul 24 kernel.  Happened once
> during the cleandir stage of a buildworld, and few more times when the
> system was relatively idle (although it is an mrtg server so lots of
> files are constantly created and rm'd).  My system is i386 with 1GB of
> RAM, has a ZFS root, and is SMP.  I've also gotten a similar "System
> call rename returning with 1 locks held" panic.  Is there any way to
> find out what lock is being held?  I've got a couple crashdumps.

It appears to be a leak in the lock counters somewhere, perhaps
related to recursively acquired rwlocks (e.g. double increment, single
free).  I eventually disabled the check because even adding extensive
extra debugging there was no evidence of an actual lock being leaked
anywhere.

Kris

Received on Fri Jul 27 2007 - 18:56:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:15 UTC