[cups] DirtyCleanInterval setting?

Till Kamppeter till.kamppeter at gmail.com
Tue May 28 06:43:09 PDT 2019


Hi,

on Ubuntu the following bug got reported:

https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1830022

The reporter suggests to set DirtyCleanInterval = 0 by default, to avoid 
loss of jobs when cupsd crashes or gets killed (on an overloaded 
system). For me it looks like a good idea. Why is this not actually set 
as default?

    Till


----------


DirtyCleanInterval should be 0 by default


Please consider changing DirtyCleanInterval value to 0 as default.

Otherwise if cupsd crashes due to (e.g. OOM killer) under a heavy 
workload even hundreds of jobs may be lost. This concern is backed up by 
a real-life scenario and leaves the client sending thousands of jobs 
unaware that many of them are lost during a crash.

After cupsd gets restarted it rewinds it's job counter to the last 
cached and continues unaware about the jobs accepted and lost.

Having DirtyCleanInterval set to 0 will cause some performance impact, 
but not significant under lighter workloads and a completely justified 
price for reliability under heavy workloads.

Test scenario:
1. sudo apt install printer-driver-cups-pdf
2. while [ 1 ]; do lp -d PDF somepdf.pdf; done;
3. # on other terminal
    kill -9 $(pidof cupsd)
4. Note last job number and wait for cupsd to be restarted by systemd.
5. Once accepting jobs is resumend the job counter is rewound.

Expected behavior:
Accepted jobs are queued for processing.

Actual behavior:
Some accepted jobs are lost.


More information about the cups mailing list