On Mon, Jun 04, 2018 at 01:23:53AM +0200, Alexander Bluhm wrote:
> On my amd64 regress machine I see a witness_warn panic now.
It is triggered by /usr/src/regress/sys/kern/mount. With visa@'s
improved stack trace I see:
======== run-regress-unmount-busy ========
cp -r /usr /mnt/regress-mount &
sleep 5
sync
sleep 10
rm -rf /mnt/regress-mount/usr &
sleep .1
umount -f /mnt/regress-mount
userret: returning with the following locks helfsck -y /dev/rvnd:d0a 2>&1 | tee
f
esck-clean.log
xclusive rrwlock inode r = 0 (0xffffff023d492b48) locked @
/usr/src/sys/ufs/ufs/ufs_vnops.c:1559
#0 witness_lock+0x254
#1 _rw_enter+0x29b
#2 _rrw_enrm: terfts_read: +0x3e
#3 VOP_LOCK+0x3d
#4 vn_lock+0x34
#5 vget+0xf7
#6 cache_lookup+0x217
#7 ufs_lookup+0x112
#8 VOP_LOOKUP+0x4f
#9 vfs_lookup+0x27e
#directory No such file or
10 namei+0x226
#11 vn_open+0xcf
#12 doopenat+0x1af
#13 syscall+0x32a
#14 Xsyscall_untramp+0xc0
panic: witness_warn
Stopped at db_enter+0x12: popq %r11
TID PID UID PRFLAGS PFLAGS CPU COMMAND
*340900 45836 0 0x100003 0 2 cp
db_enter() at db_enter+0x12
panic() at panic+0x138
witness_warn(4daf31f665ef77b2,ffff800021f74290,ffff8000ffff6960) at witness_war
n+0x4fb
userret(184acb3033f01432) at userret+0x1a0
syscall(e44e1a254de07323) at syscall+0x423
Xsyscall_untramp(6,0,0,0,0,2) at Xsyscall_untramp+0xc0
end of kernel
end trace frame: 0x7f7ffffd19b0, count: 9
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports. Insufficient info makes it difficult to find and fix bugs.
ddb{2}> show locks
exclusive rrwlock inode r = 0 (0xffffff023d492b48) locked @ /usr/src/sys/ufs/uf
s/ufs_vnops.c:1559
#0 witness_lock+0x254
#1 _rw_enter+0x29b
#2 _rrw_enter+0x3e
#3 VOP_LOCK+0x3d
#4 vn_lock+0x34
#5 vget+0xf7
#6 cache_lookup+0x217
#7 ufs_lookup+0x112
#8 VOP_LOOKUP+0x4f
#9 vfs_lookup+0x27e
#10 namei+0x226
#11 vn_open+0xcf
#12 doopenat+0x1af
#13 syscall+0x32a
#14 Xsyscall_untramp+0xc0
ddb{2}> show register
rdi 0xffffffff81ca2888 kprintf_mutex+0x10
rsi 0x8
rbp 0xffff800021f740e0
rbx 0xffff800021f74180
rdx 0xffffffff81bfddd6 intel_hpll_vco.cl_vco+0x3e6
rcx 0x201
rax 0x1
r8 0xffff800021f740b0
r9 0x8080808080808080
r10 0x3df1125987f3e8ca
r11 0x1a70d75cd6a8e458
r12 0x3000000008
r13 0xffff800021f740f0
r14 0x100
r15 0xffffffff81c0463f nviic_ids+0x7df
rip 0xffffffff81767d82 db_enter+0x12
cs 0x8
rflags 0x202
rsp 0xffff800021f740d8
ss 0x10
db_enter+0x12: popq %r11
ddb{2}>
All other CPUs are in the idle thread.
bluhm