Date: Thu, 31 Jan 2013 15:37:36 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Sergey Kandaurov <pluknet@gmail.com> Cc: FreeBSD Current <freebsd-current@FreeBSD.org> Subject: Re: panic: LK_RETRY set with incompatible flags Message-ID: <510A73A0.9000607@FreeBSD.org> In-Reply-To: <CAE-mSOJ4ZVR9R_Oej1y8VdiF-KJJdxaXzaoASRXrpQtVRN0BYQ@mail.gmail.com> References: <CAE-mSOJ4ZVR9R_Oej1y8VdiF-KJJdxaXzaoASRXrpQtVRN0BYQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
on 31/01/2013 15:29 Sergey Kandaurov said the following: > Hi. > > Got this assertion on idle NFS server while `ls -la /.zfs/shares/' > issued on NFS client. > kern/vfs_vnops.c:_vn_lock() > KASSERT((flags & LK_RETRY) == 0 || error == 0, > ("LK_RETRY set with incompatible flags (0x%x) or > an error occured (%d)", > > panic: LK_RETRY set with incompatible flags (0x200400) or an error occured (11) > > What does that mean and how is it possible? As you can see, both parts > of assertion failed. > 11 is EDEADLK > 0x200400: LK_RETRY & LK_UPGRADE LK_SHARED, not LK_UPGRADE. Apparently the thread already holds an exlusive lock on the vnode, which you confirm below. > Tracing pid 2943 tid 101532 td 0xfffffe004f5b7000 > kdb_enter() at kdb_enter+0x3e/frame 0xffffff848e45ef50 > vpanic() at vpanic+0x147/frame 0xffffff848e45ef90 > kassert_panic() at kassert_panic+0x136/frame 0xffffff848e45f000 > _vn_lock() at _vn_lock+0x70/frame 0xffffff848e45f070 > zfs_lookup() at zfs_lookup+0x392/frame 0xffffff848e45f100 > zfs_freebsd_lookup() at zfs_freebsd_lookup+0x6d/frame 0xffffff848e45f240 > VOP_CACHEDLOOKUP_APV() at VOP_CACHEDLOOKUP_APV+0xc2/frame 0xffffff848e45f260 > vfs_cache_lookup() at vfs_cache_lookup+0xcf/frame 0xffffff848e45f2b0 > VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0xc2/frame 0xffffff848e45f2d0 > lookup() at lookup+0x548/frame 0xffffff848e45f350 > nfsvno_namei() at nfsvno_namei+0x1a5/frame 0xffffff848e45f400 > nfsrvd_lookup() at nfsrvd_lookup+0x13a/frame 0xffffff848e45f6b0 > nfsrvd_dorpc() at nfsrvd_dorpc+0xca5/frame 0xffffff848e45f8a0 > nfssvc_program() at nfssvc_program+0x482/frame 0xffffff848e45fa00 > svc_run_internal() at svc_run_internal+0x1e9/frame 0xffffff848e45fba0 > svc_thread_start() at svc_thread_start+0xb/frame 0xffffff848e45fbb0 > fork_exit() at fork_exit+0x84/frame 0xffffff848e45fbf0 > fork_trampoline() at fork_trampoline+0xe/frame 0xffffff848e45fbf0 > --- trap 0xc, rip = 0x800883e9a, rsp = 0x7fffffffd488, rbp = 0x7fffffffd730 --- > > db> show lockedvnods > Locked vnodes > > 0xfffffe02e21b11d8: tag zfs, type VDIR > usecount 4, writecount 0, refcount 4 mountedhere 0 > flags (VI_ACTIVE) > v_object 0xfffffe02d9f2eb40 ref 0 pages 0 > lock type zfs: EXCL by thread 0xfffffe004f5b7000 (pid 2943, nfsd, > tid 101532) > > > -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?510A73A0.9000607>