Bug 50121

Summary: Send SIGINT to a process (boblightd) result in partial kernel hang
Product: Drivers Reporter: snoopyf
Component: USBAssignee: Alan (alan)
Status: RESOLVED CODE_FIX    
Severity: normal CC: alan, snoopyf
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.0.x - 3.2.x Subsystem:
Regression: No Bisected commit-id:

Description snoopyf 2012-11-06 07:34:31 UTC
Hi everybody,

to realize an ambilight-clone in XBMC I use a SEDU-ambilight Box (http://www.sedu-board.de) connected to an USB-Port. This Box is identified as:

0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

As software I use boblightd from http://code.google.com/p/boblight

This combination works just fine once boblightd is started, BUT:

Sending SIGINT to a running boblightd process ends up in an completely unusable USB Stack (every USB device can't be used, no USB-Keyboard/Mouse or Storage device). One can login with ssh but don't get back a prompt, so one can even not shutdown the system remotely.

This can be found in syslog:

Oct 28 16:29:28 hostname kernel: [243360.480133] INFO: task boblightd:2176 blocked for more than 120 seconds.
Oct 28 16:29:28 hostname kernel: [243360.480142] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Oct 28 16:29:28 hostname kernel: [243360.480149] boblightd       D ffffffff81806200     0  2176   2165 0x00000000
Oct 28 16:29:28 hostname kernel: [243360.480161]  ffff880067617c98 0000000000000082 ffff880067617c48 ffffffff8130d547
Oct 28 16:29:28 hostname kernel: [243360.480173]  ffff880067617fd8 ffff880067617fd8 ffff880067617fd8 00000000000137c0
Oct 28 16:29:28 hostname kernel: [243360.480184]  ffff880074331700 ffff8800725b0000 ffff880067617ca8 ffff8800733d6600
Oct 28 16:29:28 hostname kernel: [243360.480193] Call Trace:
Oct 28 16:29:28 hostname kernel: [243360.480210]  [<ffffffff8130d547>] ? kobject_put+0x27/0x60
Oct 28 16:29:28 hostname kernel: [243360.480222]  [<ffffffff81658f2f>] schedule+0x3f/0x60
Oct 28 16:29:28 hostname kernel: [243360.480231]  [<ffffffff81494ffd>] usb_kill_urb.part.4+0x5d/0xa0
Oct 28 16:29:28 hostname kernel: [243360.480241]  [<ffffffff8108ab80>] ? add_wait_queue+0x60/0x60
Oct 28 16:29:28 hostname kernel: [243360.480248]  [<ffffffff81495071>] usb_kill_urb+0x31/0x40
Oct 28 16:29:28 hostname kernel: [243360.480273]  [<ffffffffa0120f20>] generic_cleanup+0x50/0xe0 [usbserial]
Oct 28 16:29:28 hostname kernel: [243360.480288]  [<ffffffffa0121053>] usb_serial_generic_close+0x23/0x50 [usbserial]
Oct 28 16:29:28 hostname kernel: [243360.480301]  [<ffffffffa013b259>] ftdi_close+0x39/0x70 [ftdi_sio]
Oct 28 16:29:28 hostname kernel: [243360.480313]  [<ffffffffa011e029>] serial_down+0x29/0x30 [usbserial]
Oct 28 16:29:28 hostname kernel: [243360.480322]  [<ffffffff813c3f02>] tty_port_shutdown+0x62/0x70
Oct 28 16:29:28 hostname kernel: [243360.480330]  [<ffffffff813c4a0c>] tty_port_close+0x2c/0x60
Oct 28 16:29:28 hostname kernel: [243360.480342]  [<ffffffffa011ecc2>] serial_close+0x42/0x80 [usbserial]
Oct 28 16:29:28 hostname kernel: [243360.480352]  [<ffffffff813bc016>] tty_release+0x166/0x5c0
Oct 28 16:29:28 hostname kernel: [243360.480361]  [<ffffffff8104df53>] ? __wake_up+0x53/0x70
Oct 28 16:29:28 hostname kernel: [243360.480369]  [<ffffffff81055fad>] ? set_next_entity+0xad/0xd0
Oct 28 16:29:28 hostname kernel: [243360.480378]  [<ffffffff811794ee>] __fput+0xbe/0x210
Oct 28 16:29:28 hostname kernel: [243360.480385]  [<ffffffff81179665>] fput+0x25/0x30
Oct 28 16:29:28 hostname kernel: [243360.480392]  [<ffffffff81176206>] filp_close+0x66/0x90
Oct 28 16:29:28 hostname kernel: [243360.480399]  [<ffffffff811762e2>] sys_close+0xb2/0x120
Oct 28 16:29:28 hostname kernel: [243360.480407]  [<ffffffff81663442>] system_call_fastpath+0x16/0x1b
Oct 28 16:29:28 hostname kernel: [243360.480420] INFO: task sshd:4034 blocked for more than 120 seconds.
Oct 28 16:29:28 hostname kernel: [243360.480425] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Oct 28 16:29:28 hostname kernel: [243360.480431] sshd            D ffffffff81806200     0  4034    994 0x00000000
Oct 28 16:29:28 hostname kernel: [243360.480441]  ffff88002b43fb28 0000000000000082 ffffffff8118af00 00000000000000db
Oct 28 16:29:28 hostname kernel: [243360.480451]  ffff88002b43ffd8 ffff88002b43ffd8 ffff88002b43ffd8 00000000000137c0
Oct 28 16:29:28 hostname kernel: [243360.480461]  ffffffff81c0d020 ffff88006017dc00 ffff880000000000 ffffffff81c726e0
Oct 28 16:29:28 hostname kernel: [243360.480469] Call Trace:
Oct 28 16:29:28 hostname kernel: [243360.480478]  [<ffffffff8118af00>] ? poll_freewait+0xe0/0xe0
Oct 28 16:29:28 hostname kernel: [243360.480488]  [<ffffffff81658f2f>] schedule+0x3f/0x60
Oct 28 16:29:28 hostname kernel: [243360.480495]  [<ffffffff81659d37>] __mutex_lock_slowpath+0xd7/0x150

And - just to be complete - these are the last lines of boblightd's debug output:

(SignalHandler)                 caught SIGINT
(CClientsHandler::GetReadableFd)select() Interrupted system call
(main)                          signaling devices to stop
(CClientsHandler::Cleanup)      disconnecting clients
(CClientsHandler::Cleanup)      closing listening socket
(CClientsHandler::Cleanup)      clients handler stopped
(main)                          waiting for devices to stop
/dev/ttyUSB0 write: 5a b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a5

I filed a bug report at boblightd's Google-code site (http://code.google.com/p/boblight/issues/detail?id=51) but the deveopers there assume this as a kernel bug, so I opened a bug report here, too.
As you can see in the boblightd issue, another user has the same problem with different distro's, so this seems to be distro-independent...

Thx in advance!
Comment 1 Alan 2014-01-20 17:01:23 UTC
Is this still reproducible with recent kernels - there have been some changes in this area which have hopefully fixed various bugs.
Comment 2 snoopyf 2014-01-21 17:03:54 UTC
Since a few months now this problem didn't occour, never saw this again. So it indeed seems to be fixed.