[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