← Back to team overview

touch-packages team mailing list archive

[Bug 1448259] Re: Systemd does not send SIGTERM first on shutdown

 

This bug was fixed in the package systemd - 219-8ubuntu1

---------------
systemd (219-8ubuntu1) wily; urgency=medium

  * Merge with Debian experimental branch. Remaining Ubuntu changes:
    - Hack to support system-image read-only /etc, and modify files in
      /etc/writable/ instead.
    - Keep our much simpler udev maintainer scripts (all platforms must
      support udev, no debconf).
    - initramfs init-top: Drop $ROOTDELAY, we do that in a more sensible way
      with wait-for-root. Will get applicable to Debian once Debian gets
      wait-for-root in initramfs-tools.
    - initramfs init-bottom: If LVM is installed, settle udev,
      otherwise we get missing LV symlinks. Workaround for LP #1185394.
    - Add debian/udev.lvm2.init: Dummy SysV init script to satisfy insserv
      dependencies to "lvm2" which is handled with udev rules in Ubuntu.
    - Add debian/udev.lvm2.service to avoid running the dummy lvm2 init
      script.
    - Provide shutdown fallback for upstart. (LP: #1370329)
    - debian/extra/ifup@.service: Additionally run for "auto" class. We don't
      really support "allow-hotplug" in Ubuntu at the moment, so we need to
      deal with "auto" devices appearing after "/etc/init.d/networking start"
      already ran. (LP: #1374521) Also, check if devices are actually defined
      in /etc/network/interfaces as we don't use Debian's net.agent.
      Also run ifup in the background during boot, to avoid blocking
      network.target. (LP: #1425376)
    - ifup@.service: Drop dependency on networking.service (i. e.
      /etc/init.d/networking), and merely ensure that /run/network exists.
      This avoids unnecessary dependencies/waiting during boot and dependency
      cycles if hooks wait for other interfaces to come up (like ifenslave
      with bonding interfaces). (LP: #1414544)
    - Add Get-RTC-is-in-local-time-setting-from-etc-default-rc.patch: In
      Ubuntu we currently keep the setting whether the RTC is in local or UTC
      time in /etc/default/rcS "UTC=yes|no", instead of /etc/adjtime.
      (LP: #1377258)
    - Put session scopes into all cgroup controllers. This makes unprivileged
      user LXC containers work under systemd. (LP: #1346734)
    - systemctl: Don't forward telinit u to upstart. This works around
      upstart's Restart() always reexec'ing /sbin/init on Restart(), even if
      that changes to point to systemd during the upgrade. This avoids running
      systemd during a dist-upgrade. (LP: #1430479)
    - Drop hwdb-update dependency from udev-trigger.service, which got
      introduced in v219-stable. This causes udev and plymouth to start too
      late and isn't really needed in Ubuntu yet as we don't support stateless
      systems yet and handle hwdb.bin updates through dpkg triggers. This can
      be dropped again with initramfs-tools 0.117.
    - Lower Breaks: to plymouth version which has the udev inotify fix in
      Ubuntu.
    - Lower libappamor dep to the Ubuntu version where it moved to /lib.
    - Change systemd-sysv's conflicts to upstart-sysv. (LP: #1422681)
    - Make failure of boot-and-services NSpawn.test_boot non-fatal for now.
      This currently fails when being triggered by Jenkins, but is totally
      unreproducible when running this manually on the exact same machine.

    Upgrade fixes, keep until 16.04 LTS release:
    - systemd Conflicts/Replaces/Provides systemd-services.
    - Remove obsolete systemd-logind upstart job.
    - Clean up obsolete /etc/udev/rules.d/README.

systemd (219-9) UNRELEASED; urgency=medium

  * 75-persistent-net-generator.rules: Fix rules for ibmveth (it's a driver,
    not a subsystem). (LP: #1437375)
  * debian/tests/unit-config: Add tests for systemctl enable/disable on a
    SysV-only unit. Reproduces LP #1447807.
  * Fix systemctl enable for SysV scripts without a native unit. We must not
    try and enable the nonexisting unit then. (LP: #1447807)

systemd (219-8) experimental; urgency=medium

  [ Michael Biebl ]
  * Skip filesystem check if already done by the initramfs. (Closes: #782522)
  * Drop hard-coded versioned dependency on libapparmor1. Bump the
    Build-Depends on libapparmor-dev instead. This ensures a proper versioned
    dependency via Build-Depends-Package.
  * Revert "Make apparmor run before networking". This causes dependency
    cycles while apparmor still depends on $remote_fs.
  * Cleanup hwclock-save.service symlinks when upgrading from the jessie
    version.

  [ Martin Pitt ]
  * cryptsetup: Implement offset and skip options. (Closes: #751707,
    LP: #953875)
  * logind autopkgtest: Add test for suspending on lid switch close.
    This reproduces LP #1444166 (lid switch not working in the first few
    minutes after boot).
  * Reduce the initial suspend supression time from 3 minutes to 30 seconds,
    and make it configurable. (LP: #1444166)
  * Fix double free crash in "systemctl enable" when calling update-rc.d and
    the latter fails. (Closes: #764613, LP: #1426588)
  * hwdb: Fix wireless switch on Dell Latitude (LP: #1441849)
  * Fix assertion crash when reading a service file with missing ' and
    trailing space. (LP: #1447243)
  * ifup@.service: Set IgnoreOnIsolate, so that "systemctl default" does not
    shut down network interfaces. (Closes: #762953, LP: #1449380).
    Add PartOf=network.target, so that stopping network.target also stops
    network interfaces (so that isolating emergency.target and similar work as
    before).
  * Revert upstream commit 743970d which immediately SIGKILLs units during
    shutdown. This leads to problems like bash not being able to write its
    history, mosh not saving its state, and similar failed cleanup actions.
    (LP: #1448259)
  * Drop the reversion of "journald: allow restarting journald without losing
    stream connections", and replace with proper upstream fix for
    sd_pid_notify_with_fds(). (See Debian #778970, LP #1423811; LP: #1437896)

 -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Thu, 07 May 2015 12:16:36
+0200

** Changed in: systemd (Ubuntu)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1448259

Title:
  Systemd does not send SIGTERM first on shutdown

Status in systemd:
  Unknown
Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Vivid:
  Fix Committed
Status in systemd package in Fedora:
  Unknown

Bug description:
  It has been normal that applications first get the SIGTERM signal
  before SIGKILL on shutdown/reboot in order to successfully finish any
  pending tasks. Now it seem this logic has been changed to something
  else, causing problems to mosh and many others:

  https://bugs.launchpad.net/ubuntu/+source/mosh/+bug/1446982

  SIGTERM  suggestion can be seen here:

  http://unixhelp.ed.ac.uk/CGI/man-cgi?shutdown+8

  I created this error report to find out the correct way for
  applications to fix this problem or to create one fix to systemd,
  bringing back the old "BSD shutdown" functionality.

  This report is for Ubuntu 15.04.

  SRU TEST CASE:
   - Open a terminal, enter some commands, then run "reboot".
   - After a reboot, chances are very high that your bash history does not contain your most recently typed commands
   - With the updated package, the bash history should be intact.

  REGRESSION POTENTIAL:
   - The original commit was applied because of an inherent race condition with cgroup's release_agent -- in rare corner cases an nspawn container (probably also LXC) can miss them. In that case it's possible that you instead get a 90s timeout on the unit that is shutting down. But this does not mean data loss, just a rare shutdown hang from containers (for the record, I never actually saw that hanging with LXC), so I think it's a good trade-off.

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


References