[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