Bug 2356 - [UPDATE REQUEST] systemd was fixed to avoid restarting failed services indefinitely
: [UPDATE REQUEST] systemd was fixed to avoid restarting failed services indefi...
Status: RESOLVED FIXED
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: All Linux
: Normal normal
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2013-07-17 17:09 MSD by Eugene Shatokhin
Modified: 2013-07-23 11:43 MSD (History)
3 users (show)

See Also:
RPM Package: systemd-194
ISO-related:
Bad POT generating:
Upstream: known
vladimir.potapov: qa_verified+
alex.burmashev: published+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Shatokhin 2013-07-17 17:09:14 MSD
systemd was fixed to avoid restarting failed services indefinitely.

This update is one of those needed to fix http://bugs.rosalinux.ru/show_bug.cgi?id=1744.

The following upstream fix was applied to our systemd package:
http://cgit.freedesktop.org/systemd/systemd/commit/?id=464876c9c410b2f5bb997259510a13d0ee7d0af0
Comment 1 Eugene Shatokhin 2013-07-17 17:31:42 MSD
Advisory:
Systemd was fixed to avoid restarting failed socket-activated services indefinitely.

Buildlists:
https://abf.rosalinux.ru/build_lists/1186915
https://abf.rosalinux.ru/build_lists/1186916

How to test the fix:
One may simulate failure of rsyslog service and check if systemd restarts that service.

Steps:
1. Stop and disable (just in case) rsyslog.service:
# systemctl disable rsyslog.service
# systemctl stop rsyslog.service

2. Check if there is line "ExecStartPre=/bin/rm -f /var/run/rsyslogd.pid" in "[Service]" section in /lib/systemd/system/rsyslog.service. If it is there, remove it.

3. Write a PID of any running process, say, 1, to /var/run/rsyslogd.pid (simulate a PID file left behind by rsyslogd before, that caused failures before it was fixed):
# echo 1 > /var/run/rsyslogd.pid

4. # systemctl --system daemon-reload

5. Enable and try to start rsyslog.service:
# systemctl enable rsyslog.service
# systemctl start rsyslog.service

rsyslog.service must fail to start with exit status 1 (check it with 'systemctl status rsyslog.service').

6. Check that if systemd or systemd-journald now occupies 100% CPU. They should not.

7. Clean up everything done above.
Restore "ExecStartPre=/bin/rm -f /var/run/rsyslogd.pid" in /lib/systemd/system/rsyslog.service removed at step 2. Then reload systemd ('systemctl --system daemon-reload') and start rsyslog.service again. It should start successfully.
Comment 2 Vladimir Potapov 2013-07-19 18:58:50 MSD
The package route to extended testing
Comment 3 Postnikov Dmitry 2013-07-22 01:16:07 MSD
********************************
Extended testing report
*******************************
Everything works fine on all computers.
Comment 4 Vladimir Potapov 2013-07-22 04:45:53 MSD
systemd-194-21-rosa2012.1
************************ Advisory ************************
Systemd was fixed to avoid restarting failed socket-activated services indefinitely.
**********************************************************
QA Verified