NetBSD-Bugs archive

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

kern/55303: mutex_vector_enter,512: uninitialized lock



>Number:         55303
>Category:       kern
>Synopsis:       mutex_vector_enter,512: uninitialized lock
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 26 10:40:00 +0000 2020
>Originator:     Kimihiro Nonaka
>Release:        NetBSD HEAD (20200526)
>Organization:
>Environment:
NetBSD netbsd-hv 9.99.64 NetBSD 9.99.64 (GENERIC) #14: Tue May 26 18:16:13 JST 2020  nonaka@ubuntu-hv:/home/snapshot/NetBSD/HEAD-20200525/obj.Linux-x86_64/amd64/sys/arch/amd64/compile/GENERIC amd64
>Description:
panic: mutex_vector_enter,512: uninitialized lock (lock=0xffffffff816d2800, from=ffffffff804693db)
cpu1: Begin traceback...
vpanic() at netbsd:vpanic+0x152
snprintf() at netbsd:snprintf
lockdebug_wantlock() at netbsd:lockdebug_wantlock+0x173
mutex_enter() at netbsd:mutex_enter+0x392
usbread() at netbsd:usbread+0x71
cdev_read() at netbsd:cdev_read+0x85
spec_read() at netbsd:spec_read+0xbf
VOP_READ() at netbsd:VOP_READ+0x40
vn_read() at netbsd:vn_read+0x88
dofileread() at netbsd:dofileread+0x79
sys_read() at netbsd:sys_read+0x49
syscall() at netbsd:syscall+0x283
--- syscall (number 3) ---
netbsd:syscall+0x283:
cpu1: End traceback...


dmesg:
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
    2018, 2019, 2020 The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 9.99.64 (GENERIC) #14: Tue May 26 18:16:13 JST 2020
	nonaka@ubuntu-hv:/home/snapshot/NetBSD/HEAD-20200525/obj.Linux-x86_64/amd64/sys/arch/amd64/compile/GENERIC
total memory = 8190 MB
avail memory = 7912 MB
entropy: entering seed from bootloader with 256 bits of entropy
WARNING: module error: module `pciverbose' pushed by boot loader already exists
WARNING: module error: module `msdos' pushed by boot loader already exists
pool redzone disabled for 'buf4k'
pool redzone disabled for 'buf64k'
running cgd selftest aes-xts-256 aes-xts-512 done
efi: systbl at pa f7fee018
mainbus0 (root)
pci_mode_detect: mode 1 enable failed (ffffffff)
ACPI: RSDP 0x00000000F7FFA014 000024 (v02 VRTUAL)
ACPI: XSDT 0x00000000F7FF90E8 00005C (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: FACP 0x00000000F7FF8000 000114 (v06 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: DSDT 0x00000000F6ED3000 01E0AA (v02 MSFTVM DSDT01   00000001 MSFT 05000000)
ACPI: FACS 0x00000000F7FFE000 000040
ACPI: APIC 0x00000000F7FF7000 000068 (v04 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: OEM0 0x00000000F7FF6000 000064 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: WAET 0x00000000F7FF5000 000028 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: SRAT 0x00000000F7FF4000 0001B0 (v02 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: BGRT 0x00000000F7FF3000 000038 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: FPDT 0x00000000F6DD5000 000034 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
ACPI: 1 ACPI AML tables successfully acquired and loaded
ioapic0 at mainbus0 apid 4
cpu0 at mainbus0 apid 0
cpu0: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz, id 0x806ea
cpu0: node 0, package 0, core 0, smt 0
cpu1 at mainbus0 apid 1
cpu1: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz, id 0x806ea
cpu1: node 0, package 0, core 1, smt 0
cpu2 at mainbus0 apid 2
cpu2: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz, id 0x806ea
cpu2: node 0, package 0, core 2, smt 0
cpu3 at mainbus0 apid 3
cpu3: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz, id 0x806ea
cpu3: node 0, package 0, core 3, smt 0
acpi0 at mainbus0: Intel ACPICA 20200430
VMOD (ACPI0004) at acpi0 not configured
APIC (PNP0003) at acpi0 not configured
vmbus0 at acpi0 (VMBS, VMBUS-0): Hyper-V VMBus
vmbus0: protocol 3.0
"avma-4" at vmbus0 not configured
hvheartbeat0 at vmbus0: Hyper-V Heartbeat Service
"kvp" at vmbus0 not configured
hvshutdown0 at vmbus0: Hyper-V Guest Shutdown Service
hvtimesync0 at vmbus0: Hyper-V Time Synchronization Service
hvs0 at vmbus0: Hyper-V StorVSC SCSI
hvs0: protocol 6.2
scsibus0 at hvs0: 2 targets, 64 luns per target
"dynamic-memory" at vmbus0 not configured
"mouse" at vmbus0 not configured
hvkbd0 at vmbus0: Hyper-V Synthetic Keyboard
wskbd0 at hvkbd0 mux 1
genfb0 at vmbus0: Hyper-V Synthetic Video
wsdisplay0 at genfb0 kbdmux 1
drm at genfb0 not configured
"avma-2" at vmbus0 not configured
"remote-desktop" at vmbus0 not configured
hvn0 at vmbus0: Hyper-V NetVSC
hvn0: NVS 5.0 NDIS 6.30
hvn0: Ethernet address XX:XX:XX:XX:XX:XX
hvn1 at vmbus0: Hyper-V NetVSC
hvn1: NVS 5.0 NDIS 6.30
hvn1: Ethernet address XX:XX:XX:XX:XX:XX
acpibat0 at acpi0 (BAT1, PNP0C0A): ACPI Battery
acpiacad0 at acpi0 (AC1, ACPI0003): ACPI AC Adapter
UAR1 (PNP0501) at acpi0 not configured
UAR2 (PNP0501) at acpi0 not configured
GENC (HYPER_V_GEN_COUNTER_V1) at acpi0 not configured
ACPI: Enabled 2 GPEs in block 00 to 0F
isa0 at mainbus0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com0: console
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
attimer0 at isa0 port 0x40-0x43
acpicpu0 at cpu0: ACPI CPU
ACPI Error: \P001: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-215)
hyperv0 at cpu0: Hyper-V
acpicpu1 at cpu1: ACPI CPU
ACPI Error: \P002: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-215)
acpicpu2 at cpu2: ACPI CPU
ACPI Error: \P003: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-215)
acpicpu3 at cpu3: ACPI CPU
ACPI Error: \P004: This object type [Device] never contains data and cannot be evaluated (20200430/nseval-215)
cpu0 has 1 core siblings: cpu0
cpu0 has 4 pkg siblings: cpu1 cpu2 cpu3 cpu0
cpu0 has 1 1st siblings: cpu0
cpu0 first in package: cpu0
cpu1 has 1 core siblings: cpu1
cpu1 has 4 pkg siblings: cpu2 cpu3 cpu0 cpu1
cpu1 has 1 1st siblings: cpu0
cpu1 first in package: cpu0
cpu2 has 1 core siblings: cpu2
cpu2 has 4 pkg siblings: cpu3 cpu0 cpu1 cpu2
cpu2 has 1 1st siblings: cpu0
cpu2 first in package: cpu0
cpu3 has 1 core siblings: cpu3
cpu3 has 4 pkg siblings: cpu0 cpu1 cpu2 cpu3
cpu3 has 1 1st siblings: cpu0
cpu3 first in package: cpu0
acpibat0: failed to evaluate _BIF: AE_ERROR
acpiacad0: AC adapter online.
sd0 at scsibus0 target 1 lun 0: <Msft, Virtual Disk, 1.0> disk fixed
sd0: fabricating a geometry
sd0: 81920 MB, 81920 cyl, 64 head, 32 sec, 512 bytes/sect x 167772160 sectors
sd0: fabricating a geometry
dk0 at sd0: "EFI", 262144 blocks at 64, type: msdos
dk1 at sd0: "NetBSD", 159123389 blocks at 262272, type: ffs
dk2 at sd0: "swap", 8386463 blocks at 159385664, type: swap
cd0 at scsibus0 target 1 lun 1: <Msft, Virtual DVD-ROM, 1.0> cdrom removable
sd0: async, 8-bit transfers, tagged queueing
cd0: async, 8-bit transfers
WARNING: 1 error while detecting hardware; check system log.
boot device: sd0
root on dk1 dumps on dk2
dump_misc_init: max_paddr = 0x208000000
mountroot: trying lfs...
mountroot: trying ffs...
/: replaying log to memory
root file system type: ffs
kern.module.path=/stand/amd64/9.99.64/modules
init: copying out path `/sbin/init' 11

>How-To-Repeat:
run the following test program using the kernel with LOCKDEBUG in the environment where there is no USB host controller like Hyper-V.

test program:
#include <dev/usb/usb.h>

#include <err.h>
#include <fcntl.h>
#include <unistd.h>

int
main(void)
{
	struct usb_event ue;
	ssize_t rsz;
	int fd;

	fd = open("/dev/usb", O_RDONLY);
	if (fd == -1)
		err(1, "open");

	rsz = read(fd, &ue, sizeof(ue));
	if (rsz != sizeof(ue))
		err(1, "read");

	return 0;
}

>Fix:



Home | Main Index | Thread Index | Old Index