Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Apr 2012 10:31:39 -0400 (EDT)
From:      kwhite@site.uottawa.ca
To:        "Daichi GOTO" <daichi@freebsd.org>
Cc:        kwhite@site.uottawa.ca, freebsd-current@freebsd.org
Subject:   Re: (unionfs) panic: excl->share with r230341 and above
Message-ID:  <14043.74.51.53.177.1333981899.squirrel@courriel.site.uottawa.ca>
In-Reply-To: <20120408221127.969e8e71.daichi@freebsd.org>
References:  <55056.74.51.53.177.1333762589.squirrel@courriel.site.uottawa.ca> <20120408221127.969e8e71.daichi@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> 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@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@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@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to
>> "freebsd-current-unsubscribe@freebsd.org"
>
>
> --
> Daichi GOTO (daichi)
> FreeBSD Committer, http://www.FreeBSD.org The Power To Serve
>





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