tech-kern archive

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

Kernel panic with usbverbose (?)



	Hello,

	I have recently filled a PR (55699) as one of my NetBSD server
(NetBSD-9 built from sources tree) panics when it launches a bacula jobs.

[  3409.124192] uvm_fault(0xffffffff8151f760, 0xffffffff819ca000, 4) -> e
[  3409.124192] fatal page fault in supervisor mode
[  3409.124192] trap type 6 code 0x10 rip 0xffffffff819ca061 cs 0x8 rflags
0x10293 cr2 0xffffffff819ca061 ilevel 0 rsp 0xffffae013d79abb0
[  3409.124192] curlwp 0xfffffa749e1ef060 pid 160.1 lowest kstack
0xffffae013d7982c0
[  3409.124192] panic: trap
[  3409.124192] cpu5: Begin traceback...
[  3409.133355] vpanic() at netbsd:vpanic+0x160
[  3409.133355] snprintf() at netbsd:snprintf
[  3409.133355] startlwp() at netbsd:startlwp
[  3409.133355] alltraps() at netbsd:alltraps+0xbb
[  3409.133355] usbd_devinfo_vp() at netbsd:usbd_devinfo_vp+0xa9
[  3409.143358] usbd_fill_deviceinfo() at netbsd:usbd_fill_deviceinfo+0x68
[  3409.143358] usbioctl() at netbsd:usbioctl+0xdc
[  3409.143358] cdev_ioctl() at netbsd:cdev_ioctl+0xc4
[  3409.153361] VOP_IOCTL() at netbsd:VOP_IOCTL+0x54
[  3409.153361] vn_ioctl() at netbsd:vn_ioctl+0xa5
[  3409.153361] sys_ioctl() at netbsd:sys_ioctl+0x5ab
[  3409.163364] syscall() at netbsd:syscall+0x157
[  3409.163364] --- syscall (number 54) ---
[  3409.163364] 735f5396824a:
[  3409.163364] cpu5: End traceback...

	This server was stable before I have added :
- iSCSI initiator (to connect a NAS) ;
- jumbo frames (on re0)
- bacula (-dir, -sd and -fd)

	I have tested the same configuration without jumbo frame, same panic,
but later.

	I don't understand why kernel panics in usbverbose module as only usb
devices on this server is keyboard and mouse.

	If I configure traces with kern.module.verbose=1, I obtain when I
launch a bacul job (certainly from bacula-fd or -sd) :

[ 10736.911324] DEBUG: module: Loading plist from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.plist
 [ 10736.911324] DEBUG: module: plist load returned error 2 for
 `/stand/amd64/9.0/modules/usbverbose/usbverbose.kmod'
 [ 10736.921726] DEBUG: module: module `usbverbose' loaded successfully
 [ 10746.925138] DEBUG: module: unload requested for 'usbverbose' (FALSE)
 [ 10746.925138] DEBUG: module: unloaded module `usbverbose'
 [ 10746.965153] DEBUG: module: Loading module from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.kmod
 [ 10746.965153] DEBUG: module: Loading plist from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.plist
 [ 10746.965153] DEBUG: module: plist load returned error 2 for
 `/stand/amd64/9.0/modules/usbverbose/usbverbose.kmod'
 [ 10746.975404] DEBUG: module: module `usbverbose' loaded successfully
 [ 10753.947813] DEBUG: module: unload requested for 'usbverbose' (TRUE)
 [ 10753.947813] DEBUG: module: unloaded module `usbverbose'
 [ 10756.998976] DEBUG: module: Loading module from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.kmod
 [ 10756.998976] DEBUG: module: Loading plist from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.plist
 [ 10756.998976] DEBUG: module: plist load returned error 2 for
 `/stand/amd64/9.0/modules/usbverbose/usbverbose.kmod'
 [ 10757.019631] DEBUG: module: module `usbverbose' loaded successfully
 [ 10767.012792] DEBUG: module: unload requested for 'usbverbose' (FALSE)
 [ 10767.012792] DEBUG: module: unloaded module `usbverbose'
 [ 10767.042803] DEBUG: module: Loading module from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.kmod
 [ 10767.042803] DEBUG: module: Loading plist from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.plist
 [ 10767.042803] DEBUG: module: plist load returned error 2 for
 `/stand/amd64/9.0/modules/usbverbose/usbverbose.kmod'
 [ 10767.052828] DEBUG: module: module `usbverbose' loaded successfully
 [ 10777.056620] DEBUG: module: unload requested for 'usbverbose' (FALSE)
 [ 10777.056620] DEBUG: module: unloaded module `usbverbose'
 [ 10777.076627] DEBUG: module: Loading module from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.kmod
 [ 10777.076627] DEBUG: module: Loading plist from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.plist
 [ 10777.076627] DEBUG: module: plist load returned error 2 for
 `/stand/amd64/9.0/modules/usbverbose/usbverbose.kmod'
 [ 10777.096792] DEBUG: module: module `usbverbose' loaded successfully
 [ 10787.090445] DEBUG: module: unload requested for 'usbverbose' (FALSE)
 [ 10787.090445] DEBUG: module: unloaded module `usbverbose'
 [ 10787.120456] DEBUG: module: Loading module from
 /stand/amd64/9.0/modules/usbverbose/usbverbose.kmod

	Thus, bacula seems to call a syscall that continually load and unload
this module. I have checked into bacula sources and only syscall I have
found that could indirectly load this module seems to be statvfs().
Maybe there are other syscalls, but it's the only syscall I have found.

	I remember I have seen the same backtrace recently on another
workstation (and of course without bacula).

	Something in kernel seems to use a module that has been unloaded. I
don't know how debug this panic.

	Please note that the first time, usbverbose module is correctly unloaded :

 [ 10753.947813] DEBUG: module: unload requested for 'usbverbose' (TRUE)
 [ 10753.947813] DEBUG: module: unloaded module `usbverbose'

After, all requests returns FALSE :

 [ 10787.090445] DEBUG: module: unload requested for 'usbverbose' (FALSE)

	Another question : what is the signification of " [ 10767.042803]
DEBUG: module: plist load returned error 2 for
 `/stand/amd64/9.0/modules/usbverbose/usbverbose.kmod'" ? 2 for ENOENT ?

	Is there any workaround ?

	Best regards,

	JKB



Home | Main Index | Thread Index | Old Index