Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jul 2007 16:56:34 -0400
From:      Kris Kennaway <kris@obsecurity.org>
To:        Dan Nelson <dnelson@allantgroup.com>
Cc:        freebsd-current@freebsd.org, Thierry Herbelot <thierry@herbelot.com>
Subject:   Re: ZFS panic: System call unlink returning with 1 locks held
Message-ID:  <20070727205634.GA49495@rot26.obsecurity.org>
In-Reply-To: <20070727200826.GA53337@dan.emsphone.com>
References:  <200707210657.11159.thierry@herbelot.com> <20070727200826.GA53337@dan.emsphone.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--gKMricLos+KVdGMg
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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=20
> > 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 :
> >=20
> > panic: System call unlink returning with 1 locks held
> > cpuid =3D 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
>=20
> 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

--gKMricLos+KVdGMg
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFGqlwCWry0BWjoQKURAiIJAKDyT8VaNjZoENsFfDDmB5knSDnJzQCePQG0
xdep0ohnwV9NGZ13eqX3OlU=
=kjz7
-----END PGP SIGNATURE-----

--gKMricLos+KVdGMg--



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