Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Dec 2006 17:36:21 -0500
From:      Kris Kennaway <kris@obsecurity.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        rodrigc@crodrigues.org, Daichi GOTO <daichi@freebsd.org>, ozawa@ongs.co.jp, freebsd-current@freebsd.org
Subject:   Re: [ANN] unionfs patchset-17 release, lock mechanism changed for robust working
Message-ID:  <20061202223620.GA3871@xor.obsecurity.org>
In-Reply-To: <20061202222423.GA3766@xor.obsecurity.org>
References:  <4570305A.4010908@freebsd.org> <20061202222423.GA3766@xor.obsecurity.org>

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

--6c2NcOVqGQ03X4Wi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Dec 02, 2006 at 05:24:23PM -0500, Kris Kennaway wrote:
> On Fri, Dec 01, 2006 at 10:38:34PM +0900, Daichi GOTO wrote:
> > Hi Guys!
> >=20
> > It is my pleasure and honor to announce the availability of
> > the unionfs patchset-17. p17 have some significant improvements
> > around the lock mechanism for robust and stable working.
>=20
> I got the following locking assertion as soon as I tried to start a
> package build in the unionfs -b mountpoint.

Even simpler test:

mount_unionfs /usr/src /c/test/src
cd /c/test/src
make buildworld -j4

panics immediately with:

db_trace_self_wrapper(c5685a80,ecd01ab4,c073871a,ecd01ac4,c57af560,...) at =
db_trace_self_wrapper+0x37
vfs_badlock(c57af560,ecd01ac4,c07d4d20,c57af560,c5685a80,c07ea370) at vfs_b=
adlock+0x76
assert_vop_elocked(c57af560,c0760340,ecd01b78,c4fb8a00,ecd01b78,...) at ass=
ert_vop_elocked+0x63
unionfs_get_node_status(c4fb8a00,c5685a80,ecd01b0c,c054a2cc,c5683d88,...) a=
t unionfs_get_node_status+0x29
unionfs_ioctl(ecd01b78,c078ed87,ecd01c0c,c57af560,0,...) at unionfs_ioctl+0=
x2e
VOP_IOCTL_APV(c07a4e00,ecd01b78,c0771b2f,2e7,0,...) at VOP_IOCTL_APV+0x94
vn_ioctl(c53aaa20,402c7413,c5786700,c55a9000,c5685a80,...) at vn_ioctl+0x135
kern_ioctl(c5685a80,3,402c7413,c5786700,c5786700,...) at kern_ioctl+0x8a
ioctl(c5685a80,ecd01d04,c,ecd01d38,3,...) at ioctl+0xac
syscall(3b,3b,3b,0,8220160,...) at syscall+0x152
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (54, FreeBSD ELF32, ioctl), eip =3D 0x2817fb6f, esp =3D 0xbfbfd=
bdc, ebp =3D 0xbfbfdbf8 ---
unionfs_get_node_status: 0xc57af560 is not exclusive locked but should be

db> show lockedvnods
Locked vnodes

0xc57a0000: tag ufs, type VREG
    usecount 0, writecount 0, refcount 3 mountedhere 0
    flags ()
    v_object 0xc575d3c0 ref 0 pages 1
     lock type ufs: EXCL (count 1) by thread 0xc5399540 (pid 1512)#0 0xc054=
5c13 at _lockmgr+0x538
#1 0xc06a766f at ffs_lock+0x6a
#2 0xc0738675 at _VOP_LOCK_APV+0x69
#3 0xc05d7f4a at _vn_lock+0x73
#4 0xc05cb994 at vget+0x8b
#5 0xc05bfd42 at vfs_hash_get+0x105
#6 0xc06a3003 at ffs_vget+0x49
#7 0xc06add11 at ufs_lookup+0x967
#8 0xc0739a97 at VOP_CACHEDLOOKUP_APV+0x94
#9 0xc05bc44d at vfs_cache_lookup+0xec
#10 0xc0739bd1 at VOP_LOOKUP_APV+0x9c
#11 0xc05c0971 at lookup+0x36c
#12 0xc05c1703 at namei+0x358
#13 0xc05d17ed at kern_unlink+0x60
#14 0xc05d19f9 at unlink+0x22
#15 0xc072156b at syscall+0x152
#16 0xc07093af at Xint0x80_syscall+0x1f

        ino 10729, on dev da0s1a
db>

Please don't take this the wrong way, but I wonder if your internal
tests can be improved so we don't have to go through this kind of
extended debugging cycle.

Kris


--6c2NcOVqGQ03X4Wi
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFcf/kWry0BWjoQKURAhUrAJ9kpltrl5z+xz3H4Wp9oh9A1ISKTACgmLWP
Nq0jBMTFZVpSfbhyWgdCSiw=
=DBQ7
-----END PGP SIGNATURE-----

--6c2NcOVqGQ03X4Wi--



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