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>
