(unionfs) panic: excl->share with r230341 and above

Daichi GOTO daichi at freebsd.org
Tue Apr 10 02:28:36 UTC 2012


Thanks kwhite,

I found an another lock issue. Please try a patch included.

On Mon, 9 Apr 2012 10:31:39 -0400 (EDT)
kwhite at site.uottawa.ca wrote:
> > Hi
> >
> > Please try an attached patch that improves handlings of fs locks.
> > I think that this patch can resolve this issue. If that works well,
> > I'm going to refine and commit it to head.
> >
> 
> Thanks!
> 
> I tried your patch but get the same panic:
> 
>     FreeBSD 10.0-CURRENT #6 r233856M: Mon Apr  9 09:47:42 EDT 2012
>     ...
>     exclusive lock of (lockmgr) ufs @
> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1897
>     while share locked from /usr/src/sys/modules/unionfs/../../fs/unionfs/
> union_vnops.c:1897
>     panic: excl->share
>     cpuid = 0
>     KDB: enter: panic
>     [ thread pid 38 tid 100050 ]
>     Stopped at      kdb_enter+0x3b: movl    $0,kdb_why
>     db> show all locks
>     Process 38 (ls) thread 0xc56dd2e0 (100050)
>     exclusive sleep mutex vnode interlock (vnode interlock) r = 0
> (0xc5797d38) locked @
> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1889
>     shared lockmgr ufs (ufs) r = 0 (0xc5797d18) locked @
> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1897
>     db>
> 
> > On Fri, 6 Apr 2012 21:36:29 -0400 (EDT)
> > kwhite at site.uottawa.ca wrote:
> >> Starting with r230341, I get the following panic when trying to run
> >> an executable on a unionfs filesystem:
> >>
> >>         exclusive lock of (lockmgr) ufs @
> >> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1843
> >>         while share locked from
> >> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1843
> >>         panic: excl->share
> >>         cpuid = 0
> >>         KDB: enter: panic
> >>
> >> Narrowing down with a binary search: r230340 (no panic), r230341
> >> (panic).
> >>
> >> How to repeat:
> >>         # uuname -a
> >>         FreeBSD  10.0-CURRENT FreeBSD 10.0-CURRENT #5 r233946M: Fri Apr
> >> 6
> >> 21:09:32 EDT 2012     kwhite at demo:/usr/src/obj/usr/src/sys/GENERIC
> >>  i386
> >>
> >>         # mkdir /tmp/local
> >>         # mount -t unionfs -o noatime /tmp/local /usr/local
> >>         # cp /bin/ls /usr/local/bin/ls
> >>         # /usr/local/bin/ls
> >>         ....
> >>         exclusive lock of (lockmgr) ufs @
> >> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1843
> >>         while share locked from
> >> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1843
> >>         panic: excl->share
> >>         cpuid = 0
> >>         KDB: enter: panic
> >>         [ thread pid 68 tid 100054 ]
> >>         Stopped at      kdb_enter+0x3b: movl    $0,kdb_why
> >>         db> show all locks
> >>         Process 68 (ls) thread 0xc5780000 (100054)
> >>         exclusive sleep mutex vnode interlock (vnode interlock) r = 0
> >> (0xc57cec28) locked @
> >> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1835
> >>         shared lockmgr ufs (ufs) r = 0 (0xc57cec08) locked @
> >> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1843
> >>         db>
> >>
> >> Workaround?
> >>         After reverting the change from LK_EXCLUSIVE to LK_SHARED
> >>         in sys/kern/kern_exec.c, executables on union filesystems no
> >>         longer cause a panic.
> >>
> >> ...keith
> >>
> >>
> >> _______________________________________________
> >> freebsd-current at freebsd.org mailing list
> >> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> >> To unsubscribe, send any mail to
> >> "freebsd-current-unsubscribe at freebsd.org"
> >
> >
> > --
> > Daichi GOTO (daichi)
> > FreeBSD Committer, http://www.FreeBSD.org The Power To Serve
> >
> 
> 
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"


-- 
Daichi GOTO (daichi)
FreeBSD Committer, http://www.FreeBSD.org The Power To Serve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unionfs_20120410.diff
Type: text/x-diff
Size: 17318 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20120410/83b5b9b5/unionfs_20120410.bin


More information about the freebsd-current mailing list