tags 745411 moreinfo thanks
Thank you for your report Cristian On Mon 21 Apr 2014 at 14:50:36 +0200, Cristian Ionescu-Idbohrn wrote: > Package: hplip > Version: 3.14.1-1 > Severity: normal > > And this is what is logged: > > Apr 20 13:04:22 debian kernel: [162198.348002] INFO: task > hp-config_usb_p:6065 blocked for more than 120 seconds. > Apr 20 13:04:22 debian kernel: [162198.348005] Tainted: P O > 3.13-1-amd64 #1 > Apr 20 13:04:22 debian kernel: [162198.348006] "echo 0 > > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > Apr 20 13:04:22 debian kernel: [162198.348008] hp-config_usb_p D > ffff88040b54cb40 0 6065 1 0x00000080 > Apr 20 13:04:22 debian kernel: [162198.348011] ffff88040b54c800 > 0000000000000086 0000000000014280 0000000000014280 > Apr 20 13:04:22 debian kernel: [162198.348014] ffff880036b4bfd8 > ffff88040b54c800 ffffffffa03a6040 ffff880036b4be78 > Apr 20 13:04:22 debian kernel: [162198.348016] ffffffffa03a6044 > ffff88040b54c800 00000000ffffffff ffffffffa03a6048 > Apr 20 13:04:22 debian kernel: [162198.348018] Call Trace: > Apr 20 13:04:22 debian kernel: [162198.348033] [<ffffffff814a45d0>] ? > schedule_preempt_disabled+0x20/0x70 > Apr 20 13:04:22 debian kernel: [162198.348036] [<ffffffff814a6043>] ? > __mutex_lock_slowpath+0x133/0x1b0 > Apr 20 13:04:22 debian kernel: [162198.348040] [<ffffffff814a60d6>] ? > mutex_lock+0x16/0x25 > Apr 20 13:04:22 debian kernel: [162198.348043] [<ffffffffa03a42d0>] ? > pp_ioctl+0x20/0x870 [ppdev] > Apr 20 13:04:22 debian kernel: [162198.348047] [<ffffffff8118b94f>] ? > do_vfs_ioctl+0x2cf/0x4a0 > Apr 20 13:04:22 debian kernel: [162198.348048] [<ffffffff8118bba0>] ? > SyS_ioctl+0x80/0xa0 > Apr 20 13:04:22 debian kernel: [162198.348052] [<ffffffff814aeb79>] ? > system_call_fastpath+0x16/0x1b > > All this started to show up while testing a udev-rule to mount a > filesystem on a USB-stick connected to an usb-port in a hub built into > "HP Compaq LA2405x" monitors. I used: > > # udevadm trigger --action=add /dev/sdg > > which activates the rules in: > > /lib/udev/rules.d/56-hpmud.rules > > That rules run /usr/bin/hp-config_usb_printer on usb devices which > seem to be scanners (Device: ID 03f0:2512): > > Bus 004 Device 004: ID 03f0:2512 Hewlett-Packard OfficeJet Pro L7300 > Bus 003 Device 005: ID 03f0:2512 Hewlett-Packard OfficeJet Pro L7300 > > but they are not. They are usb-hubs that built into "HP Compaq > LA2405x" monitors. Seen the forked processes: > > root 6065 0.0 0.0 126856 15076 ? D 12:53 0:00 > /usr/bin/python /usr/bin/hp-config_usb_printer 003:005 > root 6074 0.0 0.0 126856 15072 ? S 12:53 0:00 > /usr/bin/python /usr/bin/hp-config_usb_printer 004:004 > > Took a look at: > > # ls -al /proc/6074/fd > total 0 > dr-x------ 2 root root 0 Apr 20 13:17 . > dr-xr-xr-x 9 root root 0 Apr 20 12:53 .. > lrwx------ 1 root root 64 Apr 20 13:17 0 -> /dev/null > lrwx------ 1 root root 64 Apr 20 13:17 1 -> /dev/null > lrwx------ 1 root root 64 Apr 20 13:17 13 -> socket:[3215190] > lrwx------ 1 root root 64 Apr 20 13:17 2 -> /dev/null > l-wx------ 1 root root 64 Apr 20 13:17 3 -> > /root/.hplip/hplip_config_usb_printer.log > lr-x------ 1 root root 64 Apr 20 13:17 4 -> /dev/parport0 > > and: > > # ls -al /root/.hplip/hplip_config_usb_printer.log > -rw-r----- 1 root root 0 Apr 20 12:53 > /root/.hplip/hplip_config_usb_printer.log > > Killing the processes: > > # kill -9 6074 6065 > > silences the kernel. > > It shows up this is a problem reported here too: > > https://bugs.launchpad.net/hplip/+bug/1266704 > > that even has a partial solution (This fix is released in HPLIP-3.14.3): > > https://bugs.launchpad.net/hplip/+bug/1266704/comments/5 > > since 2014-03-13. Debian might consider a package upgrade. Still... > > That bug report states "Usb device 003:004 is HP Smart Card Terminal > keyboard and Usb device 003:005 is HP mouse". > > It seems the matching rule: > > ATTR{idVendor}=="03f0", ATTR{idProduct}=="????", > > in 56-hpmud.rules is _far_ too generous. I made a few attempts to > find ways to blacklist the 03f0:2512 devices. Came up with this one: > > ,----[ /etc/udev/rules.d/10-hpmud-blacklist.rules ] > | ACTION!="add|change", GOTO="hpmud_blacklist_rules_end" > | SUBSYSTEM!="usb", GOTO="hpmud_blacklist_rules_end" > | ENV{DEVTYPE}!="usb_device", GOTO="hpmud_blacklist_rules_end" > | > | ATTR{idVendor}=="03f0", ATTR{idProduct}=="2512", > ENV{ID_MM_DEVICE_IGNORE}:="1", RUN:="/usr/bin/logger -p info -t > 10-hpmud-blacklist.rules -- ignore %N, /sys%p" > | > | LABEL="hpmud_blacklist_rules_end" > `---- > > But that doesn't stop /lib/udev/rules.d/56-hpmud.rules from doing it's > thing :(, when: > > # udevadm trigger --action=add /dev/sdg > > The only way I found in to avoid that is to modify 56-hpmud.rules: > > LABEL="hpmud_usb_rules" > > +# "03f0:2512 Hewlett-Packard OfficeJet Pro L7300" is an USB hub > +# integrated into an HP Compaq LA2405x monitor, on my system > +ATTR{idVendor}=="03f0", ATTR{idProduct}=="2512", PROGRAM="/bin/sh -c > 'logger -p info -t 56-hpmud.rules -- skipping HP Device $env{BUSNUM} > $env{DEVNUM}'", GOTO="hpmud_rules_end" > > which works, but is obviously not ideal (as editing distributed conf-files > is unsustainable). > > Is there _any_ standard procedure I could use instead, to avoid > mangling 56-hpmud.rules? It doesn' appear so; at least, no one has come up with anything. Does the changed behaviour in hplip 3.14.3 and later (a test with unstable) address your issue in any significant way? Regards, Brian.

