(unionfs) panic: excl->share with r230341 and above
Daichi GOTO
daichi at freebsd.org
Sun Apr 8 13:11:29 UTC 2012
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.
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unionfs_patch.diff
Type: text/x-diff
Size: 14946 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20120408/b5250041/unionfs_patch.bin
More information about the freebsd-current
mailing list