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

Bug#745411: hplip: hplip_config_usb_printer producing kernel "Call Trace"



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 to: