Hi.

On Tue, Dec 20, 2016 at 03:28:38PM +0100, Martin Pieuchot wrote:
[...]
> I don't have a solution for the moment and I want to be sure we know all
> recursions before trying to write a fix.  So here's a diff that mark the
> recursions with a XXXSMP like in the NFS case.

I think I have another case of this.  (Note that it's a single processor
VM, not SMP).  So far it's reproduceable 2/2 so if you need any
additional info or testing please let me know.

panic: rw_enter: netlock locking against myself
Stopped at      Debugger+0x9:   leave
   TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
*389277  87361    500         0x3          0    0  ssh
Debugger() at Debugger+0x9
panic() at panic+0xfe
rw_enter() at rw_enter+0x1c1
sosend() at sosend+0x114

Full dmesg and trace below.

Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2016 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 6.0-current (GENERIC) #61: Tue Dec 20 15:30:01 MST 2016
    bu...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC
real mem = 2130698240 (2031MB)
avail mem = 2061586432 (1966MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xf64e0 (10 entries)
bios0: vendor Bochs version "Bochs" date 01/01/2011
bios0: QEMU Standard PC (i440FX + PIIX, 1996)
acpi0 at bios0: rev 0
acpi0: sleep states S3 S4 S5
acpi0: tables DSDT FACP SSDT APIC HPET
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: QEMU Virtual CPU version 2.5+, 2400.57 MHz
cpu0: 
FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,VMX,CX16,x2APIC,HV,NXE,LONG,LAHF
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 
16-way L2 cache
cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 999MHz
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 11, 24 pins
acpihpet0 at acpi0: 100000000 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpicpu0 at acpi0: C1(@1 halt!)
"ACPI0006" at acpi0 not configured
"PNP0303" at acpi0 not configured
"PNP0F13" at acpi0 not configured
"PNP0700" at acpi0 not configured
"PNP0501" at acpi0 not configured
"PNP0A06" at acpi0 not configured
"PNP0A06" at acpi0 not configured
"PNP0A06" at acpi0 not configured
pvbus0 at mainbus0: KVM
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02
pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00
pciide0 at pci0 dev 1 function 1 "Intel 82371SB IDE" rev 0x00: DMA, channel 0 
wired to compatibility, channel 1 wired to compatibility
pciide0: channel 0 disabled (no drives)
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <QEMU, QEMU DVD-ROM, 2.5+> ATAPI 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
piixpm0 at pci0 dev 1 function 3 "Intel 82371AB Power" rev 0x03: apic 0 int 9
iic0 at piixpm0
vga1 at pci0 dev 2 function 0 "Cirrus Logic CL-GD5446" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
virtio0 at pci0 dev 3 function 0 "Qumranet Virtio RNG" rev 0x00
viornd0 at virtio0
virtio0: apic 0 int 11
virtio1 at pci0 dev 4 function 0 "Qumranet Virtio Network" rev 0x00
vio0 at virtio1: address 52:54:00:f6:02:ea
virtio1: msix shared
virtio2 at pci0 dev 5 function 0 "Qumranet Virtio Storage" rev 0x00
vioblk0 at virtio2
scsibus2 at vioblk0: 2 targets
sd0 at scsibus2 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
sd0: 16384MB, 512 bytes/sector, 33554432 sectors
virtio2: msix shared
virtio3 at pci0 dev 6 function 0 "Qumranet Virtio Memory" rev 0x00
viomb0 at virtio3
virtio3: apic 0 int 10
virtio4 at pci0 dev 7 function 0 "Qumranet Virtio Storage" rev 0x00
vioblk1 at virtio4
scsibus3 at vioblk1: 2 targets
sd1 at scsibus3 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
sd1: 16384MB, 512 bytes/sector, 33554432 sectors
virtio4: msix shared
isa0 at pcib0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 1: density unknown
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vmm0 at mainbus0: VMX/EPT
vscsi0 at root
scsibus4 at vscsi0: 256 targets
softraid0 at root
scsibus5 at softraid0: 256 targets
root on sd0a (1afc9f32ece695a9.a) swap on sd0b dump on sd0b
Automatic boot in progress: starting file system checks.
/dev/rsd0a: file system is clean; not checking
/dev/rsd1a: file system is clean; not checking
setting tty flags
pf enabled
ddb.console: 0 -> 1
kern.splassert: 1 -> 2
kern.bufcachepercent: 20 -> 50
starting network
add net default: gateway 2001:44b8:3110:fb01::254
reordering libraries: done.
starting early daemons: syslogd pflogd ntpd.
starting RPC daemons: portmap mountd(failed) nfsd(failed).
savecore: no core dump (no dumpdev)
checking quotas: done.
clearing /tmp
starting pre-securelevel daemons:.
kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
starting network daemons: sshd snmpd smtpd.
starting local daemons:.
starting local daemons: cron.
Thu Dec 22 11:20:14 AEDT 2016

OpenBSD/amd64 (quoll.dtucker.net) (tty00)

login: panic: rw_enter: netlock locking against myself
Stopped at      Debugger+0x9:   leave
   TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
*389277  87361    500         0x3          0    0  ssh
Debugger() at Debugger+0x9
panic() at panic+0xfe
rw_enter() at rw_enter+0x1c1
sosend() at sosend+0x114
nfs_send() at nfs_send+0x60
nfs_request() at nfs_request+0x408
nfs_lookup() at nfs_lookup+0x28c
VOP_LOOKUP() at VOP_LOOKUP+0x39
vfs_lookup() at vfs_lookup+0x2fe
namei() at namei+0x346
unp_connect() at unp_connect+0xd4
uipc_usrreq() at uipc_usrreq+0x26f
soconnect() at soconnect+0xb1
sys_connect() at sys_connect+0x1c2
end trace frame: 0xffff8000213a4f10, count: 0
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> trace
Debugger() at Debugger+0x9
panic() at panic+0xfe
rw_enter() at rw_enter+0x1c1
sosend() at sosend+0x114
nfs_send() at nfs_send+0x60
nfs_request() at nfs_request+0x408
nfs_lookup() at nfs_lookup+0x28c
VOP_LOOKUP() at VOP_LOOKUP+0x39
vfs_lookup() at vfs_lookup+0x2fe
namei() at namei+0x346
unp_connect() at unp_connect+0xd4
uipc_usrreq() at uipc_usrreq+0x26f
soconnect() at soconnect+0xb1
sys_connect() at sys_connect+0x1c2
syscall() at syscall+0x197
--- syscall (number 98) ---
end of kernel
end trace frame: 0x829b7dafa00, count: -15
0x82a2c90b18a:
ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
*87361  80697  80697    500  7         0x3                ssh
 80697  55791  80697    500  3    0x100083  piperd        cvs
 55791  52204  55791    500  3        0x83  wait          bash
 52204  89068  89068    500  3        0x90  select        sshd
 89068  27605  89068      0  3        0x92  poll          sshd
 22216      1  22216      0  3    0x100083  ttyin         getty
 16520      1  16520      0  3    0x100083  ttyin         getty
 93531      1  93531      0  3    0x100083  ttyin         getty
 72152      1  72152      0  3    0x100083  ttyin         getty
 27091      1  27091      0  3    0x100083  ttyin         getty
 18433      1  18433      0  3    0x100083  ttyin         getty
 26898      1  26898      0  3    0x100098  poll          cron
 28803  15702  15702     95  3    0x100092  kqread        smtpd
 64391  15702  15702    103  3    0x100092  kqread        smtpd
 80636  15702  15702     95  3    0x100092  kqread        smtpd
 88749  15702  15702     95  3    0x100092  kqread        smtpd
 70061  15702  15702     95  3    0x100092  kqread        smtpd
 61726  15702  15702     95  3    0x100092  kqread        smtpd
 15702      1  15702      0  3    0x100080  kqread        smtpd
 47987      1  47987      0  3        0x80  kqread        snmpd
 74393      1  74393     91  3        0x92  kqread        snmpd
 36435      1  36435     91  3        0x92  kqread        snmpd
 27605      1  27605      0  3        0x80  select        sshd
 52936      0      0      0  3     0x14280  nfsidl        nfsio
 19844      0      0      0  3     0x14280  nfsidl        nfsio
  4638      0      0      0  3     0x14280  nfsidl        nfsio
 90711      0      0      0  3     0x14280  nfsidl        nfsio
  1626      1   1626     28  3    0x100090  poll          portmap
 75964      1  75964      0  3    0x100080  poll          ntpd
 44586  83081  44586     83  3    0x100092  poll          ntpd
 83081      1  83081     83  3    0x100092  poll          ntpd
  1140  77396  77396     74  3    0x100090  bpf           pflogd
 77396      1  77396      0  3        0x80  netio         pflogd
 62826  36676  36676     73  3    0x100090  kqread        syslogd
 36676      1  36676      0  3    0x100082  netio         syslogd
 39385      1  39385      0  3        0x80  mfsidl        mount_mfs
 65342      0      0      0  3     0x14200  pgzero        zerothread
 54659      0      0      0  3     0x14200  aiodoned      aiodoned
 66065      0      0      0  3     0x14200  syncer        update
 34231      0      0      0  3     0x14200  cleaner       cleaner
 12102      0      0      0  3     0x14200  reaper        reaper
 81268      0      0      0  3     0x14200  pgdaemon      pagedaemon
 85494      0      0      0  3     0x14200  bored         crynlk
 71588      0      0      0  3     0x14200  bored         crypto
 83246      0      0      0  3     0x14200  pftm          pfpurge
 60845      0      0      0  3     0x14200  bored         viomb
 96989      0      0      0  3  0x40014200  acpi0         acpi0
 48057      0      0      0  3     0x14200  bored         softnet
 10475      0      0      0  3     0x14200  bored         systqmp
 85279      0      0      0  3     0x14200  bored         systq
 33036      0      0      0  3  0x40014200  bored         softclock
 66216      0      0      0  3  0x40014200                idle0
     1      0      1      0  3        0x82  wait          init
     0     -1      0      0  3     0x10200  scheduler     swapper
ddb>
-- 
Darren Tucker (dtucker at zip.com.au)
GPG key 11EAA6FA / A86E 3E07 5B19 5880 E860  37F4 9357 ECEF 11EA A6FA (new)
    Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.

Reply via email to