Discussion:
CVS: cvs.openbsd.org: src
Gregor Best
2017-07-03 19:20:51 UTC
Permalink
Hi,
CVSROOT: /cvs
Module name: src
sys/kern : uipc_socket.c
Protect `so_state', `so_error' and `so_qlen' with the socket lock in
kqueue filters.
this commit (commitid: 8LcdPSUEwjn8Ax7h) seems to have introduced a
regression for me and for at least one person on FreeNode's #openbsd IRC
channel.

With this commit in, I get a panic like the one below. That's a
transcription from a photo of the screen, the photo itself is at [0].

NB: Where I wrote FFF, I really mean "a long string of fffff that I'm to
lazy to count and would miscount anyway"

panic: rw_enter: netlock locking against myself
Stopped at db_enter+0x9: leave
TID PID UID PRFLAGS PFLAGS CPU COMMAND
159514 21145 77 0x2 0 2 unbound-control
326022 65999 0 0x100002 0 3 ld
*523042 10099 53 0x10 0 1 unbound
db_enter(FFF8187cc6e, FFF800033376b10, 10, FFF800033376af0, 286, 8) at db_enter+0x9
panic(FFF818e1ec8, e0, FFF8000332c9ab0, FFF819af570, FFF8000332c9ab4, FFF81b2b320) at panic+0x12
_rw_enter(FFF819af570, 1, 7f7ffffea2e0, 0, 0, FFF042c75baf0) at _rw_enter+0x20f
solock(FFF03f0ca6c58, 0, a5c5f09d504c028f, 3329ab0, FFF81014131, FFF800033376ce0) at solock+0x31
filt_solisten(FFF042c75baf0, 0, 0, FFF042c75baf0, 286, 9) at filt_solisten+0x58
knote(FFF03f0ca6d30, 0, FFF8000332c9ab0, FFF03f0ca6c58, FFF03eff28c70, FFF800033376d70) at knote+0x49
doaccept(FFF8000332c9ab0, 8, 7f7ffffea2e0, 7f7ffffea3e4, 2000, ffff800033376eb0) at doaccept+0x362
syscall() at syscall+0x29f
--- syscall (numer 30) ---
end of kernel

A dmesg of a snapshot from July 2nd is inlined after the signature.

[0]: Loading Image...
--
Gregor


OpenBSD 6.1-current (GENERIC.MP) #77: Sun Jul 2 19:57:16 MDT 2017
***@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 17078013952 (16286MB)
avail mem = 16554639360 (15787MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.0 @ 0x87ed7000 (44 entries)
bios0: vendor American Megatrends Inc. version "5.11" date 08/29/2016
bios0: Notebook N24_25JU
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP APIC FPDT FIDT MCFG HPET SSDT SSDT DBGP DBG2 SSDT UEFI SSDT BGRT DMAR TPM2 ASF!
acpi0: wakeup devices PEGP(S4) PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) PXSX(S4) RP17(S4) PXSX(S4) RP18(S4) PXSX(S4) RP19(S4) PXSX(S4) RP20(S4) PXSX(S4) RP01(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, 2400.00 MHz
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: TSC frequency 2400000000 Hz
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 24MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, 2400.00 MHz
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 1 (application processor)
cpu2: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, 2400.00 MHz
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu2: 256KB 64b/line 8-way L2 cache
cpu2: smt 1, core 0, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, 2400.00 MHz
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu3: 256KB 64b/line 8-way L2 cache
cpu3: smt 1, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255
acpihpet0 at acpi0: 23999999 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PEG0)
acpiprt2 at acpi0: bus -1 (PEG1)
acpiprt3 at acpi0: bus -1 (PEG2)
acpiprt4 at acpi0: bus -1 (RP17)
acpiprt5 at acpi0: bus -1 (RP18)
acpiprt6 at acpi0: bus -1 (RP19)
acpiprt7 at acpi0: bus -1 (RP20)
acpiprt8 at acpi0: bus 1 (RP01)
acpiprt9 at acpi0: bus 2 (RP02)
acpiprt10 at acpi0: bus -1 (RP03)
acpiprt11 at acpi0: bus -1 (RP04)
acpiprt12 at acpi0: bus -1 (RP05)
acpiprt13 at acpi0: bus -1 (RP06)
acpiprt14 at acpi0: bus -1 (RP07)
acpiprt15 at acpi0: bus -1 (RP08)
acpiprt16 at acpi0: bus -1 (RP09)
acpiprt17 at acpi0: bus -1 (RP10)
acpiprt18 at acpi0: bus -1 (RP11)
acpiprt19 at acpi0: bus -1 (RP12)
acpiprt20 at acpi0: bus -1 (RP13)
acpiprt21 at acpi0: bus -1 (RP14)
acpiprt22 at acpi0: bus -1 (RP15)
acpiprt23 at acpi0: bus -1 (RP16)
acpiec0 at acpi0
acpicpu0 at acpi0: C3(***@1034 ***@0x60), C2(***@151 ***@0x33), C1(***@1 mwait.1), PSS
acpicpu1 at acpi0: C3(***@1034 ***@0x60), C2(***@151 ***@0x33), C1(***@1 mwait.1), PSS
acpicpu2 at acpi0: C3(***@1034 ***@0x60), C2(***@151 ***@0x33), C1(***@1 mwait.1), PSS
acpicpu3 at acpi0: C3(***@1034 ***@0x60), C2(***@151 ***@0x33), C1(***@1 mwait.1), PSS
acpipwrres0 at acpi0: PG00, resource for PEG0
acpipwrres1 at acpi0: PG01, resource for PEG1
acpipwrres2 at acpi0: PG02, resource for PEG2
acpitz0 at acpi0: critical temperature is 120 degC
"INT3F0D" at acpi0 not configured
"MSFT0001" at acpi0 not configured
"SYN1218" at acpi0 not configured
"INT33A1" at acpi0 not configured
"MSFT0101" at acpi0 not configured
"PNPC000" at acpi0 not configured
acpibtn0 at acpi0: PWRB
acpibtn1 at acpi0: SLPB
acpibtn2 at acpi0: LID0
acpiac0 at acpi0: AC unit online
acpibat0 at acpi0: BAT0 model "BAT" serial 0001 type LION oem "Notebook"
"PNP0C14" at acpi0 not configured
"INT340E" at acpi0 not configured
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD1F
cpu0: Enhanced SpeedStep 2400 MHz: speeds: 2301, 2300, 2200, 2100, 2000, 1800, 1700, 1500, 1400, 1300, 1100, 1000, 800, 700, 500, 400 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Core 6G Host" rev 0x08
inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 520" rev 0x07
drm0 at inteldrm0
inteldrm0: msi
error: [drm:pid0:i915_firmware_load_error_print] *ERROR* failed to load firmware i915/skl_dmc_ver1.bin (-22)
error: [drm:pid0:i915_gem_init_hw] *ERROR* Failed to initialize GuC, error -8 (ignored)
inteldrm0: 1920x1080, 32bpp
error: [drm:pid0:intel_dp_link_training_clock_recovery] *ERROR* too many full retries, give up
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x21: msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
"Intel 100 Series MEI" rev 0x21 at pci0 dev 22 function 0 not configured
ahci0 at pci0 dev 23 function 0 "Intel 100 Series AHCI" rev 0x21: msi, AHCI 1.3.1
ahci0: port 0: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, CT240BX200SSD1, MU02> SCSI3 0/direct fixed naa.500a0751f01c9d7a
sd0: 228936MB, 512 bytes/sector, 468862128 sectors, thin
ppb0 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
pci1 at ppb0 bus 1
rtsx0 at pci1 dev 0 function 0 "Realtek RTL8411B Card Reader" rev 0x01: msi
sdmmc0 at rtsx0: 4-bit
re0 at pci1 dev 0 function 1 "Realtek 8168" rev 0x12: RTL8411B (0x5c80), msi, address 80:fa:5b:33:76:b3
rgephy0 at re0 phy 7: RTL8251 PHY, rev. 0
ppb1 at pci0 dev 28 function 1 "Intel 100 Series PCIE" rev 0xf1: msi
pci2 at ppb1 bus 2
iwm0 at pci2 dev 0 function 0 "Intel Dual Band Wireless AC 8260" rev 0x3a, msi
pcib0 at pci0 dev 31 function 0 "Intel 100 Series LPC" rev 0x21
"Intel 100 Series PMC" rev 0x21 at pci0 dev 31 function 2 not configured
azalia0 at pci0 dev 31 function 3 "Intel 100 Series HD Audio" rev 0x21: msi
azalia0: codecs: Realtek ALC269, Intel/0x2809, using Realtek ALC269
audio0 at azalia0
ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x21: apic 2 int 16
iic0 at ichiic0
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
vmm0 at mainbus0: VMX/EPT
efifb at mainbus0 not configured
uhidev0 at uhub0 port 1 configuration 1 interface 0 "Elan PS/2+USB Mouse" rev 1.10/22.90 addr 2
uhidev0: iclass 3/1
ums0 at uhidev0: 3 buttons, Z dir
wsmouse0 at ums0 mux 0
uhidev1 at uhub0 port 3 configuration 1 interface 0 "CHESEN PS2 to USB Converter" rev 1.10/0.10 addr 3
uhidev1: iclass 3/1
ukbd0 at uhidev1: 8 variable keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev2 at uhub0 port 3 configuration 1 interface 1 "CHESEN PS2 to USB Converter" rev 1.10/0.10 addr 3
uhidev2: iclass 3/1, 3 report ids
ums1 at uhidev2 reportid 1: 5 buttons, Z dir
wsmouse1 at ums1 mux 0
uhid0 at uhidev2 reportid 2: input=1, output=0, feature=0
uhid1 at uhidev2 reportid 3: input=3, output=0, feature=0
ugen0 at uhub0 port 5 "Intel Bluetooth" rev 2.00/0.01 addr 4
uvideo0 at uhub0 port 6 configuration 1 interface 0 "Generic Chicony USB 2.0 Camera" rev 2.00/32.07 addr 5
video0 at uvideo0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
softraid0: sd1 was not shutdown properly
sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006> SCSI2 0/direct fixed
sd1: 228896MB, 512 bytes/sector, 468779647 sectors
root on sd1a (927460f40d363126.a) swap on sd1b dump on sd1b
WARNING: / was not properly unmounted
iwm0: hw rev 0x200, fw ver 16.242414.0, address e4:a4:71:e1:45:79
iwm0: fatal firmware error
iwm0: could not add MAC context (error 35)
Alexander Bluhm
2017-07-03 21:30:18 UTC
Permalink
Post by Gregor Best
With this commit in, I get a panic like the one below. That's a
transcription from a photo of the screen, the photo itself is at [0].
I can reproduce it with regress /usr/src/regress/lib/libtls on i386.

***@ot1:.../libtls# make regress
===> gotls
cd /usr/src/regress/lib/libtls/gotls && go test -test.v .
=== RUN TestTLSBasic

login: panic: rw_enter: netlock locking against myself
Stopped at db_enter+0x7: leave
TID PID UID PRFLAGS PFLAGS CPU COMMAND
*391817 97290 0 0x3 0x4000000 1 gotls.test
db_enter(d09ffd84,f5778d78,d0b0c268,f5778d78,7c966) at db_enter+0x7
panic(d0b0c268,d0ab74ae,f5778dcc,d04468de,d5d9f700) at panic+0x71
_rw_enter(d0bded30,1,f5778e3c,d04462b4,d0c3a6a0) at _rw_enter+0x1b4
_rw_enter_write(d0bded30,0,d55215f4,80,14) at _rw_enter_write+0x3c
solock(d56079dc,0,da46f314,0,d50122e4) at solock+0x2c
filt_solisten(d565716c,0,f5778e6c,d05c3f8c,d0bded30) at filt_solisten+0x48
knote(d5607a58,0,f5778ec8,f5778ec0,0) at knote+0x2d
doaccept(d50122e4,3,4c51fe0c,4c51fe04,2000) at doaccept+0x31a
sys_accept(d50122e4,f5778f54,f5778f7c,0,f5778fa8) at sys_accept+0x37
syscall() at syscall+0x250
--- syscall (number 0) ---

*97290 391817 69172 0 7 0x4000003 gotls.test

bluhm
Alexander Bluhm
2017-07-03 22:34:05 UTC
Permalink
Post by Alexander Bluhm
Post by Gregor Best
With this commit in, I get a panic like the one below. That's a
transcription from a photo of the screen, the photo itself is at [0].
I can reproduce it with regress /usr/src/regress/lib/libtls on i386.
This fixes the panic for me.

ok?

bluhm

Index: kern/uipc_syscalls.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_syscalls.c,v
retrieving revision 1.151
diff -u -p -r1.151 uipc_syscalls.c
--- kern/uipc_syscalls.c 27 Mar 2017 11:45:49 -0000 1.151
+++ kern/uipc_syscalls.c 3 Jul 2017 22:18:04 -0000
@@ -327,7 +327,7 @@ doaccept(struct proc *p, int sock, struc
: (flags & SOCK_NONBLOCK ? FNONBLOCK : 0);

/* connection has been removed from the listen queue */
- KNOTE(&head->so_rcv.sb_sel.si_note, 0);
+ KNOTE(&head->so_rcv.sb_sel.si_note, NOTE_SUBMIT);

fp->f_type = DTYPE_SOCKET;
fp->f_flag = FREAD | FWRITE | nflag;

Loading...