[Bug 1621846] Re: Type=idle does not actually wait for all running jobs

Martin Pitt martin.pitt at ubuntu.com
Fri Sep 9 12:03:22 UTC 2016


Complete journal with debugging mode. Relevant parts:

Sep 09 11:49:10 y1 systemd[1]: dev-sda3.device: Reinstalled deserialized job dev-sda3.device/start as 4
Sep 09 11:49:11 y1 systemd[1]: dev-sda3.device: Reinstalled deserialized job dev-sda3.device/start as 4

Sep 09 11:49:10 y1 systemd[1]: xxx.service: Failed to reset devices.list: Operation not permitted
Sep 09 11:49:10 y1 systemd[1]: xxx.service: About to execute: /bin/sh -c 'echo WASHERE; systemctl is-system-running; systemctl list-jobs'
Sep 09 11:49:10 y1 systemd[1]: xxx.service: Forked /bin/sh as 221
Sep 09 11:49:10 y1 systemd[1]: xxx.service: Changed dead -> running
Sep 09 11:49:10 y1 systemd[1]: xxx.service: Job xxx.service/start finished, result=done
Sep 09 11:49:10 y1 systemd[1]: Started XXX.

Sep 09 11:49:15 y1 systemd[221]: xxx.service: Executing: /bin/sh -c 'echo WASHERE; systemctl is-system-running; systemctl list-jobs'
Sep 09 11:49:15 y1 systemd[302]: console-getty.service: Executing: /sbin/agetty --noclear --keep-baud console 115200,38400,9600 linux
Sep 09 11:49:15 y1 sh[221]: WASHERE
Sep 09 11:49:15 y1 sh[221]: starting
Sep 09 11:49:15 y1 sh[221]: JOB UNIT            TYPE  STATE
Sep 09 11:49:15 y1 sh[221]:   4 dev-sda3.device start running
Sep 09 11:49:15 y1 sh[221]: 1 jobs listed.

Sep 09 11:50:30 y1 systemd[1]: dev-sda3.device: Job dev-
sda3.device/start timed out.


** Attachment added: "debug journal"
   https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1621846/+attachment/4737628/+files/journal.txt

-- 
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/1621846

Title:
  Type=idle does not actually wait for all running jobs

Status in systemd package in Ubuntu:
  New

Bug description:
  In some cases there are running jobs after the default target is
  reached (bug 1620780). In this case, commands from Type=idle services
  are already started after multi-user.target is reached, not after all
  running jobs are finished. This is contrary to what the manpage says:
  "execution of the service binary is delayed until all jobs are
  dispatched".

  This is reproducible with a standard images:ubuntu/yakkety/amd64 lxd
  container; add an idle unit with

  # cat <<EOF > /etc/systemd/system/xxx.service 
  [Unit]
  Description=XXX

  [Service]
  Type=idle
  ExecStart=/bin/sh -c 'echo WASHERE; systemctl is-system-running; systemctl list-jobs'

  [Install]
  WantedBy=multi-user.target
  EOF
  systemctl enable xxx.service

  
  Then reboot a couple of times until you hit bug 1620780:

  ● xxx.service - XXX
     Loaded: loaded (/etc/systemd/system/xxx.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Fri 2016-09-09 11:49:15 UTC; 1s ago
   Main PID: 221 (code=exited, status=0/SUCCESS)

  Sep 09 11:49:15 y1 systemd[221]: xxx.service: Executing: /bin/sh -c 'echo WASHERE; systemctl is-system-running; systemctl list-jobs'
  Sep 09 11:49:15 y1 sh[221]: WASHERE
  Sep 09 11:49:15 y1 sh[221]: starting
  Sep 09 11:49:15 y1 sh[221]: JOB UNIT            TYPE  STATE
  Sep 09 11:49:15 y1 sh[221]:   4 dev-sda3.device start running
  Sep 09 11:49:15 y1 sh[221]: 1 jobs listed.

  So there is still a running job but xxx.service's command already ran.
  This breaks assumptions like in bug 1576692.

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



More information about the foundations-bugs mailing list