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

From: <kwhite_at_site.uottawa.ca>
Date: Fri, 6 Apr 2012 21:36:29 -0400 (EDT)
Starting with r230341, I get the following panic when trying to run
an executable on a unionfs filesystem:

        exclusive lock of (lockmgr) ufs _at_
/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 _at_
/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 _at_
/usr/src/sys/modules/unionfs/../../fs/unionfs/union_vnops.c:1835
        shared lockmgr ufs (ufs) r = 0 (0xc57cec08) locked _at_
/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
Received on Fri Apr 06 2012 - 23:59:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:25 UTC