Bug 783379

Summary: systemd: job type reload is not applicable for unit cups.service.
Product: [openSUSE] openSUSE Tumbleweed Reporter: Christian Boltz <suse-beta>
Component: BasesystemAssignee: systemd maintainers <systemd-maintainers>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: jsmeix
Version: 13.1 Beta 1   
Target Milestone: ---   
Hardware: All   
OS: SUSE Other   
Whiteboard:
Found By: Beta-Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Christian Boltz 2012-10-03 16:33:00 UTC
I noticed this while guttenprint was updated, but it's also reproducable with a plain "rccups reload":

# rccups reload
redirecting to systemctl
Failed to issue method call: Job type reload is not applicable for unit cups.service.

You probably need to add a "ExecReload" line to cups.service. See bug 754544 for a similar case.
Comment 1 Johannes Meixner 2012-10-04 07:42:55 UTC
This is not a printing issue but a systemd issue.
Therefore I change the bug's component to "basesystem"
(hoping this is the right one for systemd issues).

I don't have sufficient knowledge about systemd.
I would appreciate it if someone who knows about systemd
would fix this in the cups package.
Comment 2 Michal Vyskocil 2012-10-09 09:11:51 UTC
The following line

ExecReload=/bin/kill -HUP $MAINPID

have to be added to cups.service

@frederic: maybe it can be a reasonable default for all units (w/o type simple)?
Comment 3 Frederic Crozat 2012-10-09 13:03:57 UTC
(In reply to comment #2)
> The following line
> 
> ExecReload=/bin/kill -HUP $MAINPID
> 
> have to be added to cups.service
> 
> @frederic: maybe it can be a reasonable default for all units (w/o type
> simple)?

This would need to be discussed with upstream, but I'm not sure it is a good idea, since you can't be sure what would be the effect on various services (you can't be sure they will all react to -HUP correctly). ATM, this line is specified in the documentation (man systemd.service, search for ExecReload).
Comment 4 Christian Boltz 2013-01-20 19:33:24 UTC
This bug still exists in 12.3 beta1 :-(

I see two options here:
a) fix cups.service - that would be the best option, but... [1]
b) fix gutenprint %post, for example by using "restart" instead of "reload"


[1] according to /etc/init.d/cups, reload isn't that easy:
    reload)
        if ps -C cupsd -o user | grep -q '^root$'
        then echo -n "Reload service cupsd"
             killproc -HUP $CUPSD_BIN
             rc_status -v
        else echo -n '"reload" not possible (cupsd does not run as user root) use "restart" instead'
             rc_status -s
        fi

I don't know if this (running cups as non-root) is relevant in real-world setups - Johannes?
Comment 5 Johannes Meixner 2013-01-22 08:40:06 UTC
No other package (except cups) should stop and start (i.e. restart)
a currently running cupsd at arbitrary time (e.g. during package
installation) because this disrupts all currently active print jobs.

This is in particular bad on print server machines (admins do not
expect such behaviour because of our obscure packaging dependency).

And also on home-user systems it can cause major annoyance when
unexperienced users do not know how to easily recover a printer that
has become "mad" because it was disrupted during active printing
(i.e. how to do a complete reset of the printer device while
there is a print job in the queue).

Only printer admin tools may stop or start the cupsd if really needed
but even then I recommend an explicit admin confirmation dialog,
compare "Strict Compliance With CUPS" at
http://en.opensuse.org/Archive:YaST_Printer_redesign
-----------------------------------------------------------------------------
The YaST printer module up to openSUSE 11.0 ... does not work
in full compliance with the CUPS printing system.
...
It re-starts the cupsd much too often (each time when it finishes)
which disrupts all actively printing jobs (really bad on a print server
under higher load). 
-----------------------------------------------------------------------------

Regarding sending CUPS daemon SIGHUP in gutenprint.spec, see
https://bugzilla.novell.com/show_bug.cgi?id=637455#c3
Comment 6 Johannes Meixner 2014-02-14 14:43:13 UTC
I think this issue here is meanwhile obsolete since
https://bugzilla.novell.com/show_bug.cgi?id=857372#c61
and subsequent comments.

*** This bug has been marked as a duplicate of bug 857372 ***