CUPS 1.4.4 slow - problem checklist?

John A. Murdie john at cs.york.ac.uk
Tue Oct 19 06:28:56 PDT 2010


Tim Waugh writes:
> Which version of system-config-printer was being used, and are you able
> to find out any more about what is causing it?
>
> Running 'system-config-printer-applet --debug' will run that applet
> while giving debugging information about what it is doing.
>
> Alternatively, the CUPS access_log and error_log might say why it was
> busy.
>
> One thing that is known to slow CUPS down is fetching a list of jobs; in
> particular, as CUPS only performs one request at a time until
> completion, a large jobs query can block CUPS for a long time.  The job
> viewer that is part of system-config-printer breaks down job fetches
> into smaller requests in order to work around this CUPS problem.
>
> Tim.

Tim, thank you - having discovered that you were a co-author of the code I was going to e-mail you after some more investigation of what was going on. Here might be as good a place as any to discuss the matter, though we can take it out of this forum if you prefer or if it gets too detailed, or becomes off-topic. (For all I know, this might be a CUPS 1.4.4 problem.)

I am very grateful for your assistance. I'm particularly worried that system-config-printer-applet seems to poll CUPS whenever PyGTK is idle using gobject.idle_add() rather than using gobject.timeout_add() with a few seconds between polls; is that a concern?

However, the debug trace has shown me (on Slackware Linux 13.1):

$ /usr/share/system-config-printer/system-config-printer.py --debug
Connected as user john
refresh
<monitor.Monitor instance at 0x9b13eec>: CUPS IPP error (1025, 'client-error-forbidden')
Created subscription -1
<monitor.Monitor instance at 0x9b13eec>: printers and jobs lists provided
update_jobs
Authentication pass: 1
Authentication: password callback set
Authentication pass: 1
Authentication: password callback set
Authentication pass: 1
Authentication: password callback set
get_notifications
refresh
<monitor.Monitor instance at 0x9b13eec>: CUPS IPP error (1025, 'client-error-forbidden')
Created subscription -1
<monitor.Monitor instance at 0x989eeec>: printers and jobs lists provided
update_jobs
get_notifications
refresh
<monitor.Monitor instance at 0x989eeec>: CUPS IPP error (1025, 'client-error-forbidden')
...

I've seen from RFC 2911 that IPP error 1025 'client-error-forbidden' is an undisclosed refusal of service.

Nevertheless, system-config-printer-applet does show jobs in progress, apparently correct printer statuses etc, as suggested by the 'printers and job lists provided' debug message above.

We use Kerberos authentication with our two CUPS servers.





More information about the cups mailing list