Re: IPP Validate-Job operation and its implementation in CUPS

Michael Sweet <[email protected]> Wed, 21 Oct 2020 16:49:29 -0400
Newsgroups gmane.linux.printing.fsg,gmane.comp.printing.cups.devel,gmane.comp.printing.cups.general
Message-ID <[email protected]>
Zdenek,

> On Oct 21, 2020, at 9:18 AM, Zdenek Dohnal <[email protected]> wrote:
> ...
> 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.

Aside from maybe retrying the Validate-Job request if it fails the first time, I'm not sure 

> 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

Actually, while Validate-Job was listed as RECOMMENDED in IPP 2.0, IPP Everywhere restores it to REQUIRED, just as STD 92 has required it going all the way back to the IPP/1.0 experimental version.

> 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

I'd rather it be automatic - either retry the Validate-Job operation or just move on to printing without validation.

> 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

I'm not keen on "supporting" broken behavior.  Usually I've tried to "gracefully degrade" in these situations, which would basically mean option 2 without the retry (just attempt to validate and continue if we don't get a valid response.

________________________
Michael Sweet