[cups] Re. Why do filter failures stop jobs instead of aborting them? (Bryan Mason)
Kurt Pfeifle
kurt.pfeifle at googlemail.com
Fri Aug 11 12:18:15 PDT 2017
On Fri, Aug 11, 2017 at 9:00 PM, <cups-request at cups.org> wrote:
[....]
> 2. Why do filter failures stop jobs instead of aborting them?
> (Bryan Mason)
[....]
> Message: 2
> Date: Fri, 11 Aug 2017 10:48:06 -0700
> From: Bryan Mason <bmason at redhat.com>
> To: cups at cups.org
> Subject: [cups] Why do filter failures stop jobs instead of aborting
> them?
> Message-ID: <1502473686.8115.8.camel at redhat.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Hello,
>
> Please consider the following situation that is occurring at one of my
> customers' sites (and reproduced in my test lab):
>
> * A "two-tier" server configuration (local CUPS service "client"
> sending jobs to a remote CUPS print "server".
>
> * A filter failure on the master print server causes the job to
> fail. The job is put into "processing-stopped" state. This
> allows additional jobs to be processed in the queue on the master
> print server. However . . .
>
> * The IPP backend on the client never exits because the job isn't
> canceled, aborted, or completed on the server. As a result, the
> queue on the client is stuck -- no more jobs can be processed on
> the client even though the job on the server is able to accept new
> jobs.
>
> This leads me to the following questions:
>
> a) Why are jobs "stopped" instead of "aborted" when a filter fails?
>
> b) Depending on the answer to the above would it be possible to
> "abort" the job (set the state to IPP_JOB_ABORTED) when a filter
> failure occurs? This would allow the client IPP backend to exit
> and the queue to become un-blocked.
>
> The definition of the "processing-stopped" state in RFC 2199 says that
> jobs in the "stopped" state will resume processing as soon as the
> reasons for the stoppage are no longer present. This seems to imply
> that "processing-stopped" is a temporary state that will correct
> itself. Most of the filter failures that I've seen are caused by a
> missing file (hpijs/foomatic/etc.), by a bug in one of the filters, or
> by a malformed input file (bad PDF, etc.). All of these require some
> sort of corrective action and you need to resubmit the print job after
> the problem is corrected.
>
> To me, setting the state to "aborted" when a filter fails seems to make
> more sense. I admit that I'm probably looking at this through a pretty
> narrow lens right now, so I understand if there are broader reasons for
> not doing this.
>
> Thanks in advance for any help you can provide.
>
> Bryan Mason
> Senior Software Maintenance Engineer
> Red Hat, Inc.
>
Have you checked the configuration of your queue(s)? There is a setting for
each queue, where you can define ErrorPolicy: there is a choice of abort-job
or retry-current-job or retry-job or stop-printer.
You can set the wanted policy for a queue (unless you want to keep the
default) with lpadmin -o printer-error-policy=<name> -p printername [...].
Cheers,
Kurt
More information about the cups
mailing list