Bug 718403

Summary: rsyslog-5.8.2-1.fc15.i686 init script fails reload
Product: [Fedora] Fedora Reporter: Alessandro Selli <alessandroselli>
Component: rsyslogAssignee: Tomas Heinrich <theinric>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 15CC: lemenkov, pvrabec, theinric
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-04-12 15:41:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alessandro Selli 2011-07-02 13:23:47 UTC
Description of problem:
Attempt to reload service rsyslogd fails, even though the init script states that "reload" is a valid option.

Version-Release number of selected component (if applicable):
rsyslog-5.8.2-1.fc15.i686

How reproducible:
Just run the init script to reload.


Steps to Reproduce:
1.[root@krill ~]# /etc/init.d/rsyslog reload
2.
3.
  
Actual results:
Reloading rsyslog configuration (via systemctl):  Failed to issue method call: Job type reload is not applicable for unit rsyslog.service.
                                                                       [FAILED]

Expected results:
Service should have reloaded fine:
Reloading rsyslog configuration (via systemctl):                          [  OK  ]

Additional info:
Running the init script without arguments causes a help menu to be displayed that reports reload among the valid options:

[root@krill ~]# /etc/init.d/rsyslog 
Usage: /etc/init.d/rsyslog {start|stop|restart|condrestart|try-restart|reload|force-reload|status}

The problem did not affect Fedora14.

Comment 1 Tomas Heinrich 2011-07-11 13:57:58 UTC
The current version of the rsyslog daemon doesn't support a 'reload' operation, you have to do a full restart instead. In Fedora, this is the case since rsyslog-5.5.7-1.fc15.

However, the init script still includes the 'reload' operation as required by
https://fedoraproject.org/wiki/Packaging:SysVInitScript#Required_Actions
and indicates that it's not supported via exit code:
https://fedoraproject.org/wiki/Packaging:SysVInitScript#Exit_Codes_for_non-Status_Actions

Comment 2 Alessandro Selli 2011-07-16 07:08:49 UTC
It sounds funny that some features are to be considered "Required", yet an exit code is in place for the cases when it's unimplemented. I read in
https://fedoraproject.org/wiki/Packaging:SysVInitScript#Required_Actions
that "reload: reload the configuration of the service without actually stopping and restarting the service (if the service does not support this, do nothing)"; well, IMHO this conflicts with the existence of the "unimplemented feature" exit code. For the sake of unambiguity, the "if the service does not support this, do nothing" statement should be changed into: "if the service does not support this, exit with an unimplemented exit code".

Comment 3 Tomas Heinrich 2012-04-12 15:41:52 UTC
I guess it's not the actual feature that is required but just proper handling of the action keyword.
Feel free to propose the new wording.

Comment 4 Alessandro Selli 2012-04-14 15:04:00 UTC
(In reply to comment #3)
> I guess it's not the actual feature that is required but just proper handling
> of the action keyword.
> Feel free to propose the new wording.

The "Required Actions" section in the document quoted above states: "All SysV-style initscripts in Fedora must have implementations of the following actions:". It sounds to me that it is the actual feature that is required, i.e. that the action *must* be *implemented*, as it is a *required* action.  I proposed to change the wording as a temporary workaround, just to make the documentation and the messages produced by the commands consistent.

That said, this bug was opened on Fedora 15, which I no longer have.  I think it does not make sense spending time implementing new features on the init scripts for F15.  Opening a new bug on Fedora 16 too makes no sense, as it runs on systemd and almost nothing is left of SysV-style init scripts.

However, I'd like to point out that systemd too does not implement the reload action for rsyslog:

[root@stn02 ~]# systemctl reload rsyslog.service
Failed to issue method call: Job type reload is not applicable for unit rsyslog.service.

It also shares the same documentation inconsistance as F15 for the same service: I can read in https://fedoraproject.org/wiki/Systemd#Introduction that: «There are seven different types of units:

    service: these are the most obvious kind of unit: daemons that can be started, stopped, restarted, reloaded.»

It does not make clear, however, if the reload command is mandated or if it's an optional feature.