NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/56460: knote deadlock in -current



>Number:         56460
>Category:       kern
>Synopsis:       knote deadlock in -current
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 20 11:35:01 +0000 2021
>Originator:     Martin Husemann
>Release:        NetBSD 9.99.92
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD seven-days-to-the-wolves.aprisoft.de 9.99.92 NetBSD 9.99.92 (GENERIC) #489: Wed Oct 20 11:02:22 CEST 2021 martin%seven-days-to-the-wolves.aprisoft.de@localhost:/work/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:

Building -current with high enough MAKE_JOBS and bad luck deadlocks:

db{0}> ps
PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
20196>20196 7   1         0   ffff86084d4b60c0           conftest
[..]

with no progress ever, console blocked, network dead.

db{0}> bt /a ffff86084d4b60c0
trace: pid 20196 lid 20196 at 0xffffab026d768b10
db_panic() at netbsd:db_panic+0x59
vpanic() at netbsd:vpanic+0x156
__x86_indirect_thunk_rax() at netbsd:__x86_indirect_thunk_rax
genfs_rename_knote() at netbsd:genfs_rename_knote+0x33d
genfs_sane_rename() at netbsd:genfs_sane_rename+0x560
ufs_sane_rename() at netbsd:ufs_sane_rename+0x3a
genfs_insane_rename() at netbsd:genfs_insane_rename+0x142
VOP_RENAME() at netbsd:VOP_RENAME+0x6e
do_sys_renameat() at netbsd:do_sys_renameat+0x932
sys_rename() at netbsd:sys_rename+0x28
syscall() at netbsd:syscall+0x196
--- syscall (number 128) ---
netbsd:syscall+0x196:

(gdb) list *(genfs_rename_knote+0x33d)
0xffffffff80dca17a is in genfs_rename_knote (../../../../miscfs/genfs/genfs_rename.c:402).
397             KASSERT(fdvp != fvp);
398             KASSERT(fdvp != tvp);
399             KASSERT(tdvp != fvp);
400             KASSERT(tdvp != tvp);
401             KASSERT(fvp != tvp);
402             KASSERT(VOP_ISLOCKED(fdvp) == LK_EXCLUSIVE);
403             KASSERT(VOP_ISLOCKED(fvp) == LK_EXCLUSIVE);
404             KASSERT(VOP_ISLOCKED(tdvp) == LK_EXCLUSIVE);
405             KASSERT((tvp == NULL) || (VOP_ISLOCKED(tvp) == LK_EXCLUSIVE));
406     


>How-To-Repeat:
n/a

>Fix:
n/a



Home | Main Index | Thread Index | Old Index