[cups] IPP Validate-Job operation and its implementation in CUPS
Zdenek Dohnal
zdohnal at redhat.com
Wed Oct 21 06:18:54 PDT 2020
Hi all,
one of our RHEL customers hit an issue with IPP Validate-Job operation
when using Lexmark CX727de printer.
A print job occasionally fails after IPP backend sends IPP Validate-Job
request to the printer, but the printer only sends TCP ACK packet after
receiving the request, and doesn't send 'HTTP/1.1 100 Continue' or full
response. When an user resubmits the job later, the printer sends the
correct response and the print job ends successfully.
I came to the conclusion it is a printer firmware bug and recommended
reporting it to printer vendor, because the printer reports it is
capable of Validate-Job operation (checked via ipptool), but it
occasionally fails.
In this email I would like to ask if there can be a way how to work
around such printer issues within CUPS, which can be aligned with RFC
and PWG standards, and can be merged into OpenPrinting/cups project.
I have several ideas:
1) Validate-Job operation is 'only' recommended since IPP 2.0, so the
backend would have printed only warning if Validate-Job failed and the
IPP protocol used for communication is 2.0 or newer
2) configurable retries for Validate-Job operation - this idea came up
from printer behavior (Validate-Job works after N retries) and from
knowledge there are already configurable variables in backends via
device uri
3) define a specific IPP_STATUS_* enum variable for failing
Validate-Job, let the backend fail if ipp_status is that variable and
let error-policy handle the possible retry
Is some of them acceptable to implement it in CUPS?
Thank you in advance for any suggestions!
Have a nice day,
Zdenek
--
Zdenek Dohnal
Software Engineer
Red Hat Czech - Brno TPB-C
More information about the cups
mailing list