[Bug 1839290] Re: systemd doesn't restart a service after crashes

Dan Streetman ddstreet at canonical.com
Wed May 6 11:26:30 UTC 2020


bionic:

ubuntu at lp1839290-b:~$ dpkg -l systemd|grep systemd
ii  systemd        237-3ubuntu10.39 amd64        system and service manager
ubuntu at lp1839290-b:~$ systemctl cat foo
# /etc/systemd/system/foo.service
[Unit]
PartOf=bar.service
[Service]
ExecStart=/bin/sleep infinity
RestartSec=0s
Restart=always


ubuntu at lp1839290-b:~$ systemctl cat bar
# /etc/systemd/system/bar.service
[Unit]
BindsTo=foo.service
#Same with or without After=, the window is very small to make a difference.
After=foo.service
[Service]
ExecStart=/bin/sleep infinity


ubuntu at lp1839290-b:~$ sudo systemctl start foo
ubuntu at lp1839290-b:~$ sudo systemctl start bar
ubuntu at lp1839290-b:~$ systemctl status foo bar
● foo.service
   Loaded: loaded (/etc/systemd/system/foo.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2020-05-06 11:20:31 UTC; 4s ago
 Main PID: 8560 (sleep)
    Tasks: 1 (limit: 4702)
   CGroup: /system.slice/foo.service
           └─8560 /bin/sleep infinity

May 06 11:20:31 lp1839290-b systemd[1]: Started foo.service.

● bar.service
   Loaded: loaded (/etc/systemd/system/bar.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2020-05-06 11:20:33 UTC; 3s ago
 Main PID: 8570 (sleep)
    Tasks: 1 (limit: 4702)
   CGroup: /system.slice/bar.service
           └─8570 /bin/sleep infinity

May 06 11:20:33 lp1839290-b systemd[1]: Started bar.service.


ubuntu at lp1839290-b:~$ sudo kill -6 8560
ubuntu at lp1839290-b:~$ systemctl status foo bar
● foo.service
   Loaded: loaded (/etc/systemd/system/foo.service; static; vendor preset: enabled)
   Active: failed (Result: core-dump) since Wed 2020-05-06 11:21:08 UTC; 1s ago
  Process: 8560 ExecStart=/bin/sleep infinity (code=dumped, signal=ABRT)
 Main PID: 8560 (code=dumped, signal=ABRT)

May 06 11:21:08 lp1839290-b systemd[1]: foo.service: Service has no hold-off time, scheduling restart.
May 06 11:21:08 lp1839290-b systemd[1]: foo.service: Failed to schedule restart job: Transaction is destructive.
May 06 11:21:08 lp1839290-b systemd[1]: foo.service: Failed with result 'core-dump'.

● bar.service
   Loaded: loaded (/etc/systemd/system/bar.service; static; vendor preset: enabled)
   Active: inactive (dead) since Wed 2020-05-06 11:21:08 UTC; 1s ago
  Process: 8570 ExecStart=/bin/sleep infinity (code=killed, signal=TERM)
 Main PID: 8570 (code=killed, signal=TERM)

May 06 11:20:33 lp1839290-b systemd[1]: Started bar.service.
May 06 11:21:08 lp1839290-b systemd[1]: Stopping bar.service...
May 06 11:21:08 lp1839290-b systemd[1]: Stopped bar.service.



ubuntu at lp1839290-b:~$ dpkg -l systemd|grep systemd
ii  systemd        237-3ubuntu10.40 amd64        system and service manager
ubuntu at lp1839290-b:~$ sudo systemctl start bar
ubuntu at lp1839290-b:~$ sudo systemctl start foo
ubuntu at lp1839290-b:~$ sudo systemctl status foo bar
● foo.service
   Loaded: loaded (/etc/systemd/system/foo.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2020-05-06 11:24:57 UTC; 10s ago
 Main PID: 1256 (sleep)
    Tasks: 1 (limit: 4702)
   CGroup: /system.slice/foo.service
           └─1256 /bin/sleep infinity

May 06 11:24:57 lp1839290-b systemd[1]: Started foo.service.

● bar.service
   Loaded: loaded (/etc/systemd/system/bar.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2020-05-06 11:24:57 UTC; 10s ago
 Main PID: 1258 (sleep)
    Tasks: 1 (limit: 4702)
   CGroup: /system.slice/bar.service
           └─1258 /bin/sleep infinity

May 06 11:24:57 lp1839290-b systemd[1]: Started bar.service.
ubuntu at lp1839290-b:~$ sudo kill -6 1256
ubuntu at lp1839290-b:~$ sudo systemctl status foo bar
● foo.service
   Loaded: loaded (/etc/systemd/system/foo.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2020-05-06 11:25:19 UTC; 2s ago
 Main PID: 1276 (sleep)
    Tasks: 1 (limit: 4702)
   CGroup: /system.slice/foo.service
           └─1276 /bin/sleep infinity

May 06 11:25:19 lp1839290-b systemd[1]: Started foo.service.

● bar.service
   Loaded: loaded (/etc/systemd/system/bar.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2020-05-06 11:25:19 UTC; 2s ago
 Main PID: 1277 (sleep)
    Tasks: 1 (limit: 4702)
   CGroup: /system.slice/bar.service
           └─1277 /bin/sleep infinity

May 06 11:25:19 lp1839290-b systemd[1]: Started bar.service.


ubuntu at lp1839290-b:~$ journalctl -b -u foo
-- Logs begin at Wed 2020-05-06 11:11:19 UTC, end at Wed 2020-05-06 11:25:22 UTC. --
May 06 11:24:57 lp1839290-b systemd[1]: Started foo.service.
May 06 11:25:19 lp1839290-b systemd[1]: foo.service: Main process exited, code=dumped, status=6/ABRT
May 06 11:25:19 lp1839290-b systemd[1]: foo.service: Failed with result 'core-dump'.
May 06 11:25:19 lp1839290-b systemd[1]: foo.service: Service has no hold-off time, scheduling restart.
May 06 11:25:19 lp1839290-b systemd[1]: foo.service: Scheduled restart job, restart counter is at 1.
May 06 11:25:19 lp1839290-b systemd[1]: Stopped foo.service.
May 06 11:25:19 lp1839290-b systemd[1]: Started foo.service.
ubuntu at lp1839290-b:~$ journalctl -b -u bar
-- Logs begin at Wed 2020-05-06 11:11:19 UTC, end at Wed 2020-05-06 11:25:57 UTC. --
May 06 11:24:57 lp1839290-b systemd[1]: Started bar.service.
May 06 11:25:19 lp1839290-b systemd[1]: Stopping bar.service...
May 06 11:25:19 lp1839290-b systemd[1]: Stopped bar.service.
May 06 11:25:19 lp1839290-b systemd[1]: Started bar.service.


** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1839290

Title:
  systemd doesn't restart a service after crashes

Status in systemd:
  Fix Released
Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Xenial:
  Fix Committed
Status in systemd source package in Bionic:
  Fix Committed
Status in systemd source package in Disco:
  Fix Released

Bug description:
  [impact]

  when a service configured to restart crashes, under certain
  configurations, that service is not correctly restarted.

  [test case]

  see comment 8

  [regression potential]

  this changes the job mode of manager-triggered restarts to 'replace'
  any existing queued job(s), instead of failing if there are queued
  job(s).  thus any regressions would occur when a service fails, that
  is configured to restart on failure.

  [scope]

  This is needed only for Xenial and Bionic.

  this is fixed with commit 03ff2dc71ecb09272d728d458498b44f7f132f51
  which is included already in Eoan.

  Fixed in Disco with the backported v240 patch from
  https://github.com/systemd/systemd/commit/677b4cc753f183731fc54fcb68ad46f806c394bc

  [other info]

  original description:
  ---

  Affected versions of OS and systemd:
  $ cat /etc/issue
  Ubuntu 16.04.6 LTS \n \l
  $ systemd --version
  systemd 229
  +PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

  Affected packages:
  systemd 229-4ubuntu21.22 and previous versions.

  Expected behaviour you didn't see:
  Scheduling restart of failed service.
  A process crashed by sigabrt and didn't restart.

  Description:
  The bug was reported to a systemd upstream repository: https://github.com/systemd/systemd/issues/11456
  The bug was fixed and accepted to the master branch: https://github.com/systemd/systemd/pull/11467/files

  Action:
  Include this patch to Ubuntu 16.04 and other version of Ubuntu which are supported.

To manage notifications about this bug go to:
https://bugs.launchpad.net/systemd/+bug/1839290/+subscriptions



More information about the foundations-bugs mailing list