Bug 1026914

Summary: Bad output when printer had no paper to start with
Product: [Fedora] Fedora Reporter: Tim Waugh <twaugh>
Component: cupsAssignee: Tim Waugh <twaugh>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: jpopelka, twaugh
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: cups-1.6.4-5.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1036057 (view as bug list) Environment:
Last Closed: 2013-12-15 03:37:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1035863    
Bug Blocks: 1026909, 1036057    
Attachments:
Description Flags
Troubleshoot report
none
bad output
none
Original document
none
cups-usb-timeout.patch (workaround) none

Description Tim Waugh 2013-11-05 16:03:25 UTC
Created attachment 819865 [details]
Troubleshoot report

Description of problem:
When printing to a USB printer that has no paper loaded to start with, the output is wrong.

Version-Release number of selected component (if applicable):
cups-1.7.0-4.fc20.x86_64
hpijs-3.13.9-2.fc20.x86_64

How reproducible:
Every time.

Steps to Reproduce:
1.Take out the paper.
2.Print something.
3.Wait until the printer has stopped making noises.
4.Put the paper back in and tell it to continue printing.

Actual results:
I'll scan it in.

Comment 1 Tim Waugh 2013-11-05 16:27:15 UTC
Created attachment 819870 [details]
bad output

Comment 2 Tim Waugh 2013-11-05 16:27:41 UTC
Created attachment 819871 [details]
Original document

Comment 3 Tim Waugh 2013-11-05 16:44:37 UTC
It's probably to do with this:

D [05/Nov/2013:16:00:48 +0000] [Job 31] Got USB transaction timeout during write.

I guess the usb backend handles this badly.

Comment 4 Tim Waugh 2013-11-07 17:05:19 UTC
Also happens with gutenprint-cups driver, so this is not driver-specific.

Comment 5 Tim Waugh 2013-11-07 17:21:49 UTC
Doesn't seem to happen with the hp backend from hplip, only the usb backend from cups.

Comment 6 Tim Waugh 2013-11-15 16:39:03 UTC
Turning off the read channel (by adding a "unidir" quick line to /usr/share/cups/usb/org.cups.usb-quirks) has no effect.

The filter sends the same data in both fail and success cases, so the problem is definitely in the usb backend.

Comment 7 Tim Waugh 2013-11-15 16:44:20 UTC
I can't see anything wrong with the usb-libusb.c code.

Can anyone else reproduce the problem?

Comment 9 Tim Waugh 2013-11-28 15:51:25 UTC
Comparison with the hp backend shows the reason it is unaffected: libhpmud's musb backend uses a libusb bulk transfer timeout of 72 hours, compared with the CUPS usb backend's timeout of 60 seconds.

Comment 10 Tim Waugh 2013-11-28 16:22:03 UTC
To reproduce this: set up a queue using the 'usb' backend (i.e. system-config-printer reports the Device URI starts with 'usb://'). If using the 'hp' backend, click on the 'Change...' button next to Device URI and select the 'USB' connection as opposed to 'HPLIP'.

Remove paper from the printer. Print the document in comment #2. After the printer stops making noise from realising there is no paper, wait for 2 minutes. Now put paper in the tray and allow it to continue.

Comment 11 Tim Waugh 2013-11-28 16:28:43 UTC
Created attachment 830313 [details]
cups-usb-timeout.patch (workaround)

Here's a workaround that avoids the problem for me.

Comment 12 Fedora Update System 2013-11-28 17:26:22 UTC
cups-1.7.0-6.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/cups-1.7.0-6.fc20

Comment 13 Tim Waugh 2013-11-29 11:59:27 UTC
In fact, a timeout of 0 would be even better.

Comment 15 Fedora Update System 2013-11-29 15:58:51 UTC
Package cups-1.7.0-6.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing cups-1.7.0-6.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-22353/cups-1.7.0-6.fc20
then log in and leave karma (feedback).

Comment 16 Fedora Update System 2013-12-15 03:37:11 UTC
cups-1.7.0-6.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2014-04-29 05:24:05 UTC
cups-1.6.4-5.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.