[cups-devel] IPP Validate-Job operation and its implementation in CUPS

Zdenek Dohnal <[email protected]> Wed, 21 Oct 2020 15:18:54 +0200
Newsgroups gmane.comp.printing.cups.devel,gmane.linux.printing.fsg,gmane.comp.printing.cups.general
Message-ID <[email protected]>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============0076293655==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="H1Kuuog5LCRHpgOVlh7q0pEMhYr0AWdJ9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--H1Kuuog5LCRHpgOVlh7q0pEMhYr0AWdJ9
Content-Type: multipart/mixed; boundary="jsyinX7Qe89P3vByLsFfqNopmMTpX2wdT";
 protected-headers="v1"
From: Zdenek Dohnal <[email protected]>
To: "The CUPS developer list." <[email protected]>
Cc: "printing-architecture-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
 <printing-architecture-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
 "The CUPS user discussion list." <[email protected]>
Message-ID: <f46bf16f-d469-cd4e-698e-525481cc98f6-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: IPP Validate-Job operation and its implementation in CUPS

--jsyinX7Qe89P3vByLsFfqNopmMTpX2wdT
Content-Type: multipart/mixed;
 boundary="------------C5A39EC5BC43585E851D80CB"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------C5A39EC5BC43585E851D80CB
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

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

--=20
Zdenek Dohnal
Software Engineer
Red Hat Czech - Brno TPB-C


--------------C5A39EC5BC43585E851D80CB--

--jsyinX7Qe89P3vByLsFfqNopmMTpX2wdT--

--H1Kuuog5LCRHpgOVlh7q0pEMhYr0AWdJ9--


--===============0076293655==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KY3Vwcy1kZXZl
bCBtYWlsaW5nIGxpc3QKY3Vwcy1kZXZlbEBjdXBzLm9yZwpodHRwczovL2xpc3RzLmN1cHMub3Jn
L21haWxtYW4vbGlzdGluZm8vY3Vwcy1kZXZlbAo=

--===============0076293655==--