syzbot


witness: reversal: inode netlock

Status: closed as invalid on 2020/10/27 19:48
Reported-by: syzbot+248ab2682842a83aafbd@syzkaller.appspotmail.com
First crash: 1486d, last: 1486d

Sample crash report:
login: witness: lock order reversal:
 1st 0xfffffd806d959c58 inode (&ip->i_lock)
 2nd 0xffffffff8277e670 netlock (netlock)
lock order "netlock"(rwlock) -> "&ip->i_lock"(rrwlock) first seen at:
#0  witness_checkorder+0x65e witness_lock_order_add sys/kern/subr_witness.c:2463 [inline]
#0  witness_checkorder+0x65e sys/kern/subr_witness.c:880
#1  rw_enter+0xd4
#2  rrw_enter+0x88 sys/kern/kern_rwlock.c:462
#3  VOP_LOCK+0x4b sys/kern/vfs_vops.c:614
#4  vn_lock+0x6c sys/kern/vfs_vnops.c:575
#5  vget+0x1c6 sys/kern/vfs_subr.c:671
#6  ktrwriteraw+0x138 sys/kern/kern_ktrace.c:659
#7  ktrstruct+0x169 ktrwrite2 sys/kern/kern_ktrace.c:627 [inline]
#7  ktrstruct+0x169 sys/kern/kern_ktrace.c:311
#8  sys_connect+0x246
#9  syscall+0x4a1 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#9  syscall+0x4a1 sys/arch/amd64/amd64/trap.c:590
#10 Xsyscall+0x128
lock order "&ip->i_lock"(rrwlock) -> "netlock"(rwlock) first seen at:
#0  witness_checkorder+0x65e witness_lock_order_add sys/kern/subr_witness.c:2463 [inline]
#0  witness_checkorder+0x65e sys/kern/subr_witness.c:880
#1  rw_enter_write+0x5b sys/kern/kern_rwlock.c:127
#2  uvn_get+0xeb uvm_vnode_lock sys/uvm/uvm_vnode.c:1501 [inline]
#2  uvn_get+0xeb sys/uvm/uvm_vnode.c:993
#3  uvm_fault+0xa41 sys/uvm/uvm_fault.c:1073
#4  kpageflttrap+0x202 sys/arch/amd64/amd64/trap.c:265
#5  kerntrap+0xef sys/arch/amd64/amd64/trap.c:321
#6  alltraps_kern_meltdown+0x7b
#7  copyin+0x53
#8  sys_connect+0x9b sys/kern/uipc_syscalls.c:362
#9  syscall+0x4a1 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#9  syscall+0x4a1 sys/arch/amd64/amd64/trap.c:590
#10 Xsyscall+0x128
Stopped at      db_enter+0x18:  addq    $0x8,%rsp
ddb{1}> 
ddb{1}> set $lines = 0
ddb{1}> set $maxwidth = 0
ddb{1}> show panic
the kernel did not panic
ddb{1}> trace
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:398
witness_checkorder(ffffffff8277e670,9,0) at witness_checkorder+0xf5a witness_debugger sys/kern/subr_witness.c:2490 [inline]
witness_checkorder(ffffffff8277e670,9,0) at witness_checkorder+0xf5a sys/kern/subr_witness.c:1087
rw_enter_write(ffffffff8277e660) at rw_enter_write+0x5b sys/kern/kern_rwlock.c:127
uvn_get(fffffd806dd01098,0,ffff8000212818e8,ffff800021281884,0,1) at uvn_get+0xeb uvm_vnode_lock sys/uvm/uvm_vnode.c:1501 [inline]
uvn_get(fffffd806dd01098,0,ffff8000212818e8,ffff800021281884,0,1) at uvn_get+0xeb sys/uvm/uvm_vnode.c:993
uvm_fault(fffffd807eff92e0,20000000,0,1) at uvm_fault+0xa41 sys/uvm/uvm_fault.c:1073
kpageflttrap(ffff800021281a10,20000000) at kpageflttrap+0x202 sys/arch/amd64/amd64/trap.c:265
kerntrap(ffff800021281a10) at kerntrap+0xef sys/arch/amd64/amd64/trap.c:321
alltraps_kern_meltdown() at alltraps_kern_meltdown+0x7b
copyin() at copyin+0x53
sys_connect(ffff8000211c2f68,ffff800021281bd8,ffff800021281c20) at sys_connect+0x9b sys/kern/uipc_syscalls.c:362
syscall(ffff800021281ca0) at syscall+0x4a1 mi_syscall sys/sys/syscall_mi.h:102 [inline]
syscall(ffff800021281ca0) at syscall+0x4a1 sys/arch/amd64/amd64/trap.c:590
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0xa1ce7c9b900, count: -12
ddb{1}> show registers
rdi                              0x3
rsi               0xffffffff82748230    __sancov_gen_cov_switch_values.129
rbp               0xffff800021281550
rbx                              0x3
rdx                             0x8b
rcx                              0x3
rax                              0x1
r8                0xffffffff81e34c43    witness_checkorder+0xf33
r9                               0x5
r10               0x93c8d092c0afb425
r11               0xe78518eee4cf2a24
r12               0xffffffff8284bd70    w_lodata+0x4f1b0
r13                                0
r14               0xffffffff8284ada0    w_lodata+0x4e1e0
r15               0xfffffd8002c975c0
rip               0xffffffff82243a18    db_enter+0x18
cs                               0x8
rflags                         0x246
rsp               0xffff800021281540
ss                              0x10
db_enter+0x18:  addq    $0x8,%rsp
ddb{1}> show proc
PROC (syz-executor1110) pid=370833 stat=onproc
    flags process=0 proc=4000000<THREAD>
    pri=32, usrpri=50, nice=20
    forw=0xffffffffffffffff, list=0xffff8000211c2cd8,0xffff80002123ccf8
    process=0xffff800021236110 user=0xffff80002127c000, vmspace=0xfffffd807eff92e0
    estcpu=36, cpticks=0, pctcpu=0.0
    user=0, sys=0, intr=0
ddb{1}> ps
   PID     TID   PPID    UID  S       FLAGS  WAIT          COMMAND
  2332  231743  38822      0  2           0                syz-executor1110
  2332  382824  38822      0  3   0x4000080  fsleep        syz-executor1110
 89897  137440  23066      0  7         0x1                syz-executor1110
 89897  376959  23066      0  2   0x4000000                syz-executor1110
*89897  370833  23066      0  7   0x4000000                syz-executor1110
 89897  236868  23066      0  3   0x4000080  fsleep        syz-executor1110
 23066  105723  32501      0  3        0x80  nanosleep     syz-executor1110
 38822   45265  32501      0  3        0x80  nanosleep     syz-executor1110
 32501   92898  44376      0  3        0x82  nanosleep     syz-executor1110
 44376  157798  89348      0  3    0x10008a  pause         ksh
 89348  239575  43051      0  3        0x92  select        sshd
 15362  206872      1      0  3    0x100083  ttyin         getty
 43051  496708      1      0  3        0x80  select        sshd
  8200  383691   9562     74  3    0x100092  bpf           pflogd
  9562   82947      1      0  3        0x80  netio         pflogd
 20935  124804   1289     73  3    0x100090  kqread        syslogd
  1289  400314      1      0  3    0x100082  netio         syslogd
 13326  312889      1     77  3    0x100090  poll          dhclient
 47676  106257      1      0  3        0x80  poll          dhclient
 32424  107186      0      0  3     0x14200  bored         smr
 49553  410255      0      0  3     0x14200  pgzero        zerothread
 74612  391175      0      0  3     0x14200  aiodoned      aiodoned
 51704  299291      0      0  3     0x14200  syncer        update
 67424  202381      0      0  3     0x14200  cleaner       cleaner
  9856  222382      0      0  3     0x14200  reaper        reaper
 46383  365998      0      0  3     0x14200  pgdaemon      pagedaemon
 19252   30359      0      0  3     0x14200  bored         crynlk
 33678  462230      0      0  3     0x14200  bored         crypto
 99312  228822      0      0  3     0x14200  bored         viomb
 37336  394094      0      0  3  0x40014200  acpi0         acpi0
 52084  441998      0      0  3  0x40014200                idle1
 44993  134340      0      0  3     0x14200  bored         softnet
 92885  459870      0      0  3     0x14200  bored         systqmp
 96000   41783      0      0  3     0x14200  bored         systq
 63555  439254      0      0  3  0x40014200  bored         softclock
 31016  151544      0      0  3  0x40014200                idle0
     1   56614      0      0  3        0x82  wait          init
     0       0     -1      0  3     0x10200  scheduler     swapper
ddb{1}> show all locks
Process 89897 (syz-executor1110) thread 0xffff8000211c2f68 (370833)
exclusive rrwlock inode r = 0 (0xfffffd806d959c58)
#0  witness_lock+0x4b0 stacktrace_save sys/sys/stacktrace.h:36 [inline]
#0  witness_lock+0x4b0 sys/kern/subr_witness.c:1164
#1  rw_enter+0x446 sys/kern/kern_rwlock.c:311
#2  rrw_enter+0x88 sys/kern/kern_rwlock.c:462
#3  VOP_LOCK+0x4b sys/kern/vfs_vops.c:614
#4  vn_lock+0x6c sys/kern/vfs_vnops.c:575
#5  uvn_get+0xd7 uvm_vnode_lock sys/uvm/uvm_vnode.c:1499 [inline]
#5  uvn_get+0xd7 sys/uvm/uvm_vnode.c:993
#6  uvm_fault+0xa41 sys/uvm/uvm_fault.c:1073
#7  kpageflttrap+0x202 sys/arch/amd64/amd64/trap.c:265
#8  kerntrap+0xef sys/arch/amd64/amd64/trap.c:321
#9  alltraps_kern_meltdown+0x7b
#10 copyin+0x53
#11 sys_connect+0x9b sys/kern/uipc_syscalls.c:362
#12 syscall+0x4a1 mi_syscall sys/sys/syscall_mi.h:102 [inline]
#12 syscall+0x4a1 sys/arch/amd64/amd64/trap.c:590
#13 Xsyscall+0x128
exclusive kernel_lock &kernel_lock r = 1 (0xffffffff828cea78)
#0  witness_lock+0x4b0 stacktrace_save sys/sys/stacktrace.h:36 [inline]
#0  witness_lock+0x4b0 sys/kern/subr_witness.c:1164
#1  syscall+0x3fd mi_syscall sys/sys/syscall_mi.h:93 [inline]
#1  syscall+0x3fd sys/arch/amd64/amd64/trap.c:590
#2  Xsyscall+0x128
ddb{1}> show malloc
           Type InUse  MemUse  HighUse   Limit  Requests Type Lim
         devbuf  9474   6410K    6411K  78643K     10565        0
            pcb    13      8K       8K  78643K        13        0
         rtable    61      2K       2K  78643K       127        0
         ifaddr    29      8K       8K  78643K        30        0
       counters    39     33K      33K  78643K        39        0
       ioctlops     0      0K       4K  78643K      1467        0
          mount     1      1K       1K  78643K         1        0
         vnodes  1183     74K      75K  78643K      1188        0
      UFS quota     1     32K      32K  78643K         1        0
      UFS mount     5     36K      36K  78643K         5        0
            shm     2      1K       1K  78643K         2        0
         VM map     2      1K       1K  78643K         2        0
            sem     2      0K       0K  78643K         2        0
        dirhash    12      2K       2K  78643K        12        0
           ACPI  1825    197K     290K  78643K     13109        0
      file desc     1      0K       0K  78643K         1        0
           proc    59     63K      71K  78643K       367        0
    NFS srvsock     1      0K       0K  78643K         1        0
     NFS daemon     1     16K      16K  78643K         1        0
       in_multi    11      0K       0K  78643K        11        0
    ether_multi     1      0K       0K  78643K         1        0
    ISOFS mount     1     32K      32K  78643K         1        0
  MSDOSFS mount     1     16K      16K  78643K         1        0
           ttys    19     95K      95K  78643K        19        0
           exec     0      0K       2K  78643K       302        0
        pagedep     1      8K       8K  78643K         1        0
       inodedep     1     32K      32K  78643K         1        0
         newblk     1      0K       0K  78643K         1        0
        VM swap     7     26K      26K  78643K         7        0
       UVM amap    48     18K      18K  78643K      1613        0
       UVM aobj     3      2K       2K  78643K         3        0
        memdesc     1      4K       4K  78643K         1        0
    crypto data     1      1K       1K  78643K         1        0
            NDP     4      0K       0K  78643K         4        0
           temp    23   3949K    4013K  78643K     52107        0
         kqueue     2      2K       2K  78643K         2        0
      SYN cache     2     16K      16K  78643K         2        0
ddb{1}> show all pools
Name      Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
arp         64        2    0        0     1     0     1     1     0     8    0
plcache    128       20    0        0     1     0     1     1     0     8    0
rtpcb      120       15    0       13     1     0     1     1     0     8    0
rtentry    112       23    0        1     1     0     1     1     0     8    0
unpcb      120       29    0       19     1     0     1     1     0     8    0
syncache   296        5    0        5     2     1     1     1     0     8    1
tcpcb      736      427    0      379     6     0     6     6     0     8    1
inpcb      296     1285    0     1273     2     0     2     2     0     8    1
pfosfp      40     1428    0     1005     5     0     5     5     0     8    0
pfosfpen   112     1428    0      714    21     0    21    21     0     8    0
pfstitem    24        8    0        2     1     0     1     1     0     8    0
pfstkey    112        8    0        2     1     0     1     1     0     8    0
pfstate    328        8    0        2     1     0     1     1     0     8    0
pfrule     1360      21    0       16     2     1     1     2     0     8    0
art_heap8  4096       1    0        0     1     0     1     1     0     8    0
art_heap4  256       96    0        0     6     0     6     6     0     8    0
art_table   32       97    0        0     1     0     1     1     0     8    0
art_node    16       22    0        2     1     0     1     1     0     8    0
dirhash    1024      17    0        0     3     0     3     3     0     8    0
dino2pl    256     1404    0       16    87     0    87    87     0     8    0
ffsino     272     1404    0       16    93     0    93    93     0     8    0
nchpl      144     1585    0       33    59     1    58    58     0     8    0
uvmvnodes   72     1414    0        0    26     0    26    26     0     8    0
vnodes     208     1414    0        0    75     0    75    75     0     8    0
namei      1024    5037    0     5037     2     1     1     1     0     8    1
percpumem   16       30    0        0     1     0     1     1     0     8    0
scxspl     216     4104    0     4104    10     7     3     8     0     8    3
plimitpl   152       16    0        8     1     0     1     1     0     8    0
sigapl     424      433    0      400     4     0     4     4     0     8    0
futexpl     56     3390    0     3388     1     0     1     1     0     8    0
knotepl    112        5    0        0     1     0     1     1     0     8    0
kqueuepl   152        1    0        0     1     0     1     1     0     8    0
pipepl     304       64    0       60     2     1     1     1     0     8    0
fdescpl    496      417    0      400     3     0     3     3     0     8    0
filepl     152     3051    0     2991     3     0     3     3     0     8    0
lockfpl    104        5    0        4     1     0     1     1     0     8    0
lockfspl    48        3    0        2     1     0     1     1     0     8    0
sessionpl  144       20    0        9     1     0     1     1     0     8    0
pgrppl      48       20    0        9     1     0     1     1     0     8    0
ucredpl     96       62    0       53     1     0     1     1     0     8    0
zombiepl   144      400    0      400     2     1     1     1     0     8    1
processpl  1056     433    0      400     3     0     3     3     0     8    0
procpl     656     1027    0      990     4     0     4     4     0     8    0
sockpl     400     1329    0     1305     3     0     3     3     0     8    0
mcl4k      4096       2    0        0     1     0     1     1     0     8    0
mcl2k      2048      81    0        0    10     0    10    10     0     8    0
mtagpl      96        1    0        0     1     0     1     1     0     8    0
mbufpl     256      100    0        0     6     0     6     6     0     8    0
bufpl      280     2517    0      112   172     0   172   172     0     8    0
anonpl      16    32388    0    31048     8     2     6     7     0   124    0
amapchunkpl 152    1929    0     1880     4     1     3     3     0   158    0
amappl16   192      294    0      289     1     0     1     1     0     8    0
amappl15   184        1    0        1     1     1     0     1     0     8    0
amappl14   176       22    0       19     1     0     1     1     0     8    0
amappl13   168       15    0       14     2     1     1     1     0     8    0
amappl12   160        3    0        3     1     1     0     1     0     8    0
amappl11   152       50    0       35     1     0     1     1     0     8    0
amappl10   144        9    0        7     1     0     1     1     0     8    0
amappl9    136      202    0      202     2     2     0     1     0     8    0
amappl8    128      274    0      268     1     0     1     1     0     8    0
amappl7    120      210    0      209     1     0     1     1     0     8    0
amappl6    112       55    0       48     1     0     1     1     0     8    0
amappl5    104      353    0      337     1     0     1     1     0     8    0
amappl4     96      278    0      257     1     0     1     1     0     8    0
amappl3     88      104    0       97     1     0     1     1     0     8    0
amappl2     80     2537    0     2468     3     1     2     2     0     8    0
amappl1     72    21909    0    21425    15     5    10    15     0     8    0
amappl      80     1211    0     1181     1     0     1     1     0    84    0
dma4096    4096       1    0        1     1     1     0     1     0     8    0
dma1024    1024       1    0        0     1     0     1     1     0     8    0
dma256     256        6    0        6     1     1     0     1     0     8    0
dma128     128      253    0      253     1     1     0     1     0     8    0
dma64       64        6    0        6     1     1     0     1     0     8    0
dma32       32        7    0        7     1     1     0     1     0     8    0
dma16       16       18    0       17     1     0     1     1     0     8    0
aobjpl      64        2    0        0     1     0     1     1     0     8    0
uaddrrnd    24      417    0      400     1     0     1     1     0     8    0
uaddrbest   32        2    0        0     1     0     1     1     0     8    0
uaddr       24      417    0      400     1     0     1     1     0     8    0
vmmpekpl   168     7298    0     7279     2     0     2     2     0     8    1
vmmpepl    168    48836    0    47820    57    11    46    48     0   357    1
vmsppl     368      416    0      400     2     0     2     2     0     8    0
pdppl      4096     841    0      800    59    18    41    41     0     8    0
pvpl        32   106841    0   103598    33     5    28    28     0   265    1
pmappl     232      416    0      400     1     0     1     1     0     8    0
extentpl    40       57    0       39     1     0     1     1     0     8    0
phpool     112      284    0       22     8     0     8     8     0     8    0
ddb{1}> machine ddbcpu 0
Stopped at      x86_ipi_db+0x1a:        addq    $0x8,%rsp
ddb{0}> trace
x86_ipi_db(ffffffff8272eff0) at x86_ipi_db+0x1a sys/arch/amd64/amd64/db_interface.c:352
x86_ipi_handler() at x86_ipi_handler+0xb7 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
__mp_lock(ffffffff828ce870) at __mp_lock+0x129 __mp_lock_spin sys/kern/kern_lock.c:116 [inline]
__mp_lock(ffffffff828ce870) at __mp_lock+0x129 sys/kern/kern_lock.c:147
intr_handler(ffff800021269340,ffff80000065a300) at intr_handler+0x5e sys/arch/amd64/amd64/intr.c:532
Xintr_ioapic_edge4_untramp() at Xintr_ioapic_edge4_untramp+0x19f
__mp_lock(ffffffff828ce870) at __mp_lock+0x129 __mp_lock_spin sys/kern/kern_lock.c:116 [inline]
__mp_lock(ffffffff828ce870) at __mp_lock+0x129 sys/kern/kern_lock.c:147
softintr_dispatch(0) at softintr_dispatch+0x4e sys/arch/amd64/amd64/softintr.c:90
Xsoftclock() at Xsoftclock+0x1f
__mp_lock(ffffffff828ce870) at __mp_lock+0x122 __mp_lock_spin sys/kern/kern_lock.c:116 [inline]
__mp_lock(ffffffff828ce870) at __mp_lock+0x122 sys/kern/kern_lock.c:147
ktrstruct(ffff8000ffff7720,ffffffff823b8f04,ffff800021269678,10) at ktrstruct+0xee
sys_clock_gettime(ffff8000ffff7720,ffff8000212696e0,ffff800021269730) at sys_clock_gettime+0xfb sys/kern/kern_time.c:171
syscall(ffff8000212697b0) at syscall+0x4a1 mi_syscall sys/sys/syscall_mi.h:102 [inline]
syscall(ffff8000212697b0) at syscall+0x4a1 sys/arch/amd64/amd64/trap.c:590
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7f7ffffe1a70, count: -14
ddb{0}> machine ddbcpu 1
Stopped at      db_enter+0x18:  addq    $0x8,%rsp
ddb{1}> trace
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:398
witness_checkorder(ffffffff8277e670,9,0) at witness_checkorder+0xf5a witness_debugger sys/kern/subr_witness.c:2490 [inline]
witness_checkorder(ffffffff8277e670,9,0) at witness_checkorder+0xf5a sys/kern/subr_witness.c:1087
rw_enter_write(ffffffff8277e660) at rw_enter_write+0x5b sys/kern/kern_rwlock.c:127
uvn_get(fffffd806dd01098,0,ffff8000212818e8,ffff800021281884,0,1) at uvn_get+0xeb uvm_vnode_lock sys/uvm/uvm_vnode.c:1501 [inline]
uvn_get(fffffd806dd01098,0,ffff8000212818e8,ffff800021281884,0,1) at uvn_get+0xeb sys/uvm/uvm_vnode.c:993
uvm_fault(fffffd807eff92e0,20000000,0,1) at uvm_fault+0xa41 sys/uvm/uvm_fault.c:1073
kpageflttrap(ffff800021281a10,20000000) at kpageflttrap+0x202 sys/arch/amd64/amd64/trap.c:265
kerntrap(ffff800021281a10) at kerntrap+0xef sys/arch/amd64/amd64/trap.c:321
alltraps_kern_meltdown() at alltraps_kern_meltdown+0x7b
copyin() at copyin+0x53
sys_connect(ffff8000211c2f68,ffff800021281bd8,ffff800021281c20) at sys_connect+0x9b sys/kern/uipc_syscalls.c:362
syscall(ffff800021281ca0) at syscall+0x4a1 mi_syscall sys/sys/syscall_mi.h:102 [inline]
syscall(ffff800021281ca0) at syscall+0x4a1 sys/arch/amd64/amd64/trap.c:590
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0xa1ce7c9b900, count: -12
ddb{1}> 

Crashes (6):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/10/27 02:15 openbsd eda2c43b759c c62e79ba .config console log report syz C ci-openbsd-multicore
2020/10/27 07:21 openbsd 969402718346 94942294 .config console log report ci-openbsd-multicore
2020/10/27 00:17 openbsd eda2c43b759c c62e79ba .config console log report ci-openbsd-multicore
2020/10/27 00:12 openbsd eda2c43b759c c62e79ba .config console log report ci-openbsd-multicore
2020/10/27 00:08 openbsd eda2c43b759c c62e79ba .config console log report ci-openbsd-multicore
2020/10/27 00:07 openbsd eda2c43b759c c62e79ba .config console log report ci-openbsd-multicore
* Struck through repros no longer work on HEAD.