Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Oct 2011 18:39:46 -0400 (EDT)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Harald Schmalzbauer <h.schmalzbauer@omnilan.de>
Cc:        Attilio Rao <attilio@freebsd.org>, freebsd-current@freebsd.org
Subject:   Re: beta2 panic: VAPPEND without VWRITE
Message-ID:  <68247115.2381205.1317508786437.JavaMail.root@erie.cs.uoguelph.ca>
In-Reply-To: <4E872EB4.1050605@omnilan.de>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_2381204_1245153590.1317508786435
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Harald Schmalzbauer wrote:
> schrieb Attilio Rao am 01.10.2011 16:49 (localtime):
> > Can you please show the panic message?
>=20
> Sorry, I forgot to add it here:
>=20
> free indoe /var/123088 had 8 blocks
> panic: VAPPEND withour VWRITE
> >> cpuid =3D 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 =3D 0x801799f2c, rsp =3D
> >> 0x7fffffffb388, rbp =3D 0x8 ---
>=20
> I'ts reproducable with exact the same hex-numbers with 'scp' when scp
> tries to alter knwon_hosts, which is on unionfs.
>=20
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

> Here's some LORs, I haven=C3=84t checked if they're already known. I don'=
t
> have the known-LORs-URL handy...
>=20
> lock order reversal:
> 1st 0xfffffe000519c278 unionfs (unionfs) @
> /usr/src/sys/modules/unionfs/../../fs/unionfs/union_subr.c:356
> 2nd 0xfffffe000519c458 ufs (ufs) @ /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 =3D 0x800dc7ecc, rsp =3D
> 0x7fffffffd6a8, rbp =3D 0x801441190 ---
> lock order reversal:
> 1st 0xffffff80e9bf59f8 bufwait (bufwait) @
> /usr/src/sys/kern/vfs_bio.c:2658
> 2nd 0xfffffe00051a7a00 dirhash (dirhash) @
> /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 =3D 0x800933eec, rsp =3D
> 0x7fffffffd768, rbp =3D 0x800c07050 ---
> lock order reversal:
> 1st 0xfffffe000514f818 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2134
> 2nd 0xffffff80e9bf59f8 bufwait (bufwait) @
> /usr/src/sys/ufs/ffs/ffs_vnops.c:260
> 3rd 0xfffffe0005706278 ufs (ufs) @ /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 =3D 0x800933eec, rsp =3D
> 0x7fffffffdbb8, rbp =3D 0x7fffffffdee6 ---
>=20
> Thanks,
>=20
> -Harry
>=20
> >> cpuid =3D 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 =3D 0x801799f2c, rsp =3D
> >> 0x7fffffffb388, rbp =3D 0x8 ---

------=_Part_2381204_1245153590.1317508786435
Content-Type: text/x-patch; name=vappend.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=vappend.patch

LS0tIGZzL3VuaW9uZnMvdW5pb25fdm5vcHMuYy5zYXYJMjAxMS0xMC0wMSAxODoyODowMi4wMDAw
MDAwMDAgLTA0MDAKKysrIGZzL3VuaW9uZnMvdW5pb25fdm5vcHMuYwkyMDExLTEwLTAxIDE4OjI4
OjU0LjAwMDAwMDAwMCAtMDQwMApAQCAtNzQ4LDcgKzc0OCw3IEBAIHVuaW9uZnNfYWNjZXNzKHN0
cnVjdCB2b3BfYWNjZXNzX2FyZ3MgKmEKIAkJCQkJCXJldHVybiAoZXJyb3IpOwogCQkJCX0KIAkJ
CX0KLQkJCWFjY21vZGUgJj0gflZXUklURTsKKwkJCWFjY21vZGUgJj0gfihWV1JJVEUgfCBWQVBQ
RU5EKTsKIAkJCWFjY21vZGUgfD0gVlJFQUQ7IC8qIHdpbGwgY29weSB0byB1cHBlciAqLwogCQl9
CiAJCWVycm9yID0gVk9QX0FDQ0VTUyhsdnAsIGFjY21vZGUsIGFwLT5hX2NyZWQsIHRkKTsK
------=_Part_2381204_1245153590.1317508786435--



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