Re: beta2 panic: VAPPEND without VWRITE

From: Harald Schmalzbauer <h.schmalzbauer_at_omnilan.de>
Date: Wed, 05 Oct 2011 14:43:10 +0200
schrieb Rick Macklem am 02.10.2011 00:39 (localtime):
> Harald Schmalzbauer wrote:
>> schrieb Attilio Rao am 01.10.2011 16:49 (localtime):
>>> Can you please show the panic message?
>>
>> Sorry, I forgot to add it here:
>>
>> free indoe /var/123088 had 8 blocks
>> panic: VAPPEND withour VWRITE
>>>> cpuid = 0
>>>> KDB: enter: panic
>>>> [ thread pid 1445 tid 100126 ]
>>>> Stopped at kbd_enter+0x2b: movq $0,0x918a52(%rip)
>>>> db> bt
>>>> Tracing pid 1445 tid 100126 td 0xfffffe000510d460
>>>> kdb_enter() at kbd_enter+0x3b
>>>> panic() at panic+0x180
>>>> vn_isdisk() at vn_isdisk
>>>> ufs_accessx() at ufs_accessx+0x188
>>>> vop_stdaccess() at vop_stdaccess+0x43
>>>> unionfs_access() at unionfs_access+0x1c4
>>>> vn_open_cred() at vn_open_cred+0x547
>>>> kern_opneat() at kern_openat+0x1f9
>>>> syscallenter() at syscallenter+0x1aa
>>>> syscall() at syscall+0x4c
>>>> Xfast_syscall() at Xfast_syscall+0xdd
>>>> --- syscall (5, FreeBSD ELF64, open), rip = 0x801799f2c, rsp =
>>>> 0x7fffffffb388, rbp = 0x8 ---
>>
>> I'ts reproducable with exact the same hex-numbers with 'scp' when scp
>> tries to alter knwon_hosts, which is on unionfs.
>>
> You could try the attached one line patch. Since VAPPEND is a modifier
> for VWRITE, it makes sense to clear it along with VWRITE, I think?
> 
> rick

Thanks for your help. Unfortunately I can neither comment on the patch,
nor reproduce the panic... I tried the patch and all seems fine, but
also without the patch (the exactly same kernel some days ago, but
machine was rebooted since). Of course, the machine has been rebooted
after the panic too, when I was able to reproduce the panic easily.
Any idea why the pnaic was once reproducable and now isn't anymore? Of
course, _nothing_ was changed since then, besides "bootme" flag on one
GPT partition. 9-beta2 never booted since then... No hardware has
changed either !?! *kopfkratz*

Thanks,

-Harry

>> Here's some LORs, I havenÄt checked if they're already known. I don't
>> have the known-LORs-URL handy...
>>
>> lock order reversal:
>> 1st 0xfffffe000519c278 unionfs (unionfs) _at_
>> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_subr.c:356
>> 2nd 0xfffffe000519c458 ufs (ufs) _at_ /usr/src/sys/kern/vfs_subr.c:2246
>> KDB: stack backtrace:
>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
>> kdb_backtrace() at kdb_backtrace+0x37
>> _witness_debugger() at _witness_debugger+0x2e
>> witness_checkorder() at witness_checkorder+0x807
>> __lockmgr_args() at __lockmgr_args+0xdc6
>> ffs_lock() at ffs_lock+0x8c
>> VOP_LOCK1_APV() at VOP_LOCK1_APV+0x9b
>> _vn_lock() at _vn_lock+0x47
>> vputx() at vputx+0x328
>> unionfs_noderem() at unionfs_noderem+0x1c4
>> unionfs_reclaim() at unionfs_reclaim+0x11
>> vgonel() at vgonel+0x105
>> vrecycle() at vrecycle+0x4c
>> unionfs_inactive() at unionfs_inactive+0x20
>> vinactive() at vinactive+0x72
>> vputx() at vputx+0x386
>> kern_statat_vnhook() at kern_statat_vnhook+0x11d
>> kern_statat() at kern_statat+0x15
>> stat() at stat+0x2a
>> syscallenter() at syscallenter+0x1aa
>> syscall() at syscall+0x4c
>> Xfast_syscall() at Xfast_syscall+0xdd
>> --- syscall (188, FreeBSD ELF64, stat), rip = 0x800dc7ecc, rsp =
>> 0x7fffffffd6a8, rbp = 0x801441190 ---
>> lock order reversal:
>> 1st 0xffffff80e9bf59f8 bufwait (bufwait) _at_
>> /usr/src/sys/kern/vfs_bio.c:2658
>> 2nd 0xfffffe00051a7a00 dirhash (dirhash) _at_
>> /usr/src/sys/ufs/ufs/ufs_dirhash.c:284
>> KDB: stack backtrace:
>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
>> kdb_backtrace() at kdb_backtrace+0x37
>> _witness_debugger() at _witness_debugger+0x2e
>> witness_checkorder() at witness_checkorder+0x807
>> _sx_xlock() at _sx_xlock+0x55
>> ufsdirhash_acquire() at ufsdirhash_acquire+0x33
>> ufsdirhash_add() at ufsdirhash_add+0x19
>> ufs_direnter() at ufs_direnter+0x909
>> ufs_mkdir() at ufs_mkdir+0x44d
>> VOP_MKDIR_APV() at VOP_MKDIR_APV+0x93
>> kern_mkdirat() at kern_mkdirat+0x290
>> syscallenter() at syscallenter+0x1aa
>> syscall() at syscall+0x4c
>> Xfast_syscall() at Xfast_syscall+0xdd
>> --- syscall (136, FreeBSD ELF64, mkdir), rip = 0x800933eec, rsp =
>> 0x7fffffffd768, rbp = 0x800c07050 ---
>> lock order reversal:
>> 1st 0xfffffe000514f818 ufs (ufs) _at_ /usr/src/sys/kern/vfs_subr.c:2134
>> 2nd 0xffffff80e9bf59f8 bufwait (bufwait) _at_
>> /usr/src/sys/ufs/ffs/ffs_vnops.c:260
>> 3rd 0xfffffe0005706278 ufs (ufs) _at_ /usr/src/sys/kern/vfs_subr.c:2134
>> KDB: stack backtrace:
>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
>> kdb_backtrace() at kdb_backtrace+0x37
>> _witness_debugger() at _witness_debugger+0x2e
>> witness_checkorder() at witness_checkorder+0x807
>> __lockmgr_args() at __lockmgr_args+0xdc6
>> ffs_lock() at ffs_lock+0x8c
>> VOP_LOCK1_APV() at VOP_LOCK1_APV+0x9b
>> _vn_lock() at _vn_lock+0x47
>> vget() at vget+0x7b
>> vfs_hash_get() at vfs_hash_get+0xd5
>> ffs_vgetf() at ffs_vgetf+0x48
>> softdep_sync_buf() at softdep_sync_buf+0x393
>> ffs_syncvnode() at ffs_syncvnode+0x2b3
>> ffs_truncate() at ffs_truncate+0x477
>> ufs_direnter() at ufs_direnter+0x73b
>> ufs_mkdir() at ufs_mkdir+0x44d
>> VOP_MKDIR_APV() at VOP_MKDIR_APV+0x93
>> kern_mkdirat() at kern_mkdirat+0x290
>> syscallenter() at syscallenter+0x1aa
>> syscall() at syscall+0x4c
>> Xfast_syscall() at Xfast_syscall+0xdd
>> --- syscall (136, FreeBSD ELF64, mkdir), rip = 0x800933eec, rsp =
>> 0x7fffffffdbb8, rbp = 0x7fffffffdee6 ---
>>
>> Thanks,
>>
>> -Harry
>>
>>>> cpuid = 0
>>>> KDB: enter: panic
>>>> [ thread pid 1445 tid 100126 ]
>>>> Stopped at kbd_enter+0x2b: movq $0,0x918a52(%rip)
>>>> db> bt
>>>> Tracing pid 1445 tid 100126 td 0xfffffe000510d460
>>>> kdb_enter() at kbd_enter+0x3b
>>>> panic() at panic+0x180
>>>> vn_isdisk() at vn_isdisk
>>>> ufs_accessx() at ufs_accessx+0x188
>>>> vop_stdaccess() at vop_stdaccess+0x43
>>>> unionfs_access() at unionfs_access+0x1c4
>>>> vn_open_cred() at vn_open_cred+0x547
>>>> kern_opneat() at kern_openat+0x1f9
>>>> syscallenter() at syscallenter+0x1aa
>>>> syscall() at syscall+0x4c
>>>> Xfast_syscall() at Xfast_syscall+0xdd
>>>> --- syscall (5, FreeBSD ELF64, open), rip = 0x801799f2c, rsp =
>>>> 0x7fffffffb388, rbp = 0x8 ---


Received on Wed Oct 05 2011 - 10:43:13 UTC

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