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.

Reply via email to