[Bug 1303891] Re: new initctl should fallback to old reload signal semantics, if pid1 doesn't export reload dbus method

Michael Schaller misch at google.com
Wed Apr 23 12:56:19 UTC 2014


Dimitri, I've found the issue! The installation of the libselinux1
package during the dist-upgrade from Precise to Trusty causes this
issue!

Here are the details from a freshly installed Ubuntu 12.04.4 amd64 VM:
$ sudo apt-get update -qq && sudo apt-get dist-upgrade -qqy
<no output; no updates>

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS"

$ initctl --version
initctl (upstart 1.5)

$ initctl version
init (upstart 1.5)

$ initctl list
avahi-daemon start/running, process 765
...

$ sudo sed -i 's/precise/trusty/g' /etc/apt/sources.list

$ sudo apt-get update -qq
<no ouput; no errors>

$ sudo apt-get install libselinux1 -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  libselinux1
1 upgraded, 0 newly installed, 0 to remove and 1250 not upgraded.
Need to get 58.0 kB of archives.
After this operation, 2,048 B of additional disk space will be used.
Get:1 http://de.archive.ubuntu.com/ubuntu/ trusty/main libselinux1 amd64 2.2.2-1 [58.0 kB]
Fetched 58.0 kB in 0s (330 kB/s) 
(Reading database ... 174854 files and directories currently installed.)
Preparing to replace libselinux1 2.1.0-4.1ubuntu1 (using .../libselinux1_2.2.2-1_amd64.deb) ...
Unpacking replacement libselinux1 ...
Setting up libselinux1 (2.2.2-1) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

New dmesg lines:
[  256.032898] init: Re-executing /sbin/init

New syslog lines:
Apr 23 14:51:40 test upstart-socket-bridge[1090]: Disconnected from Upstart
Apr 23 14:51:40 test upstart-udev-bridge[595]: Disconnected from Upstart

$ initctl list
avahi-daemon stop/waiting
...

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

Title:
  new initctl should fallback to old reload signal semantics, if pid1
  doesn't export reload dbus method

Status in Upstart:
  Fix Committed
Status in “upstart” package in Ubuntu:
  Fix Released
Status in “upstart” source package in Trusty:
  Fix Released

Bug description:
  [Impact]

   * Between upgrading upstart to trusty and rebooting: reload (initctl
  reload) commands fail and do not SIGHUP upstart jobs.

  [Test Case]

   * with pid1 being precise init, attempt to perform $ initctl reload
  against any job using trusty's initctl

  [Regression Potential]

   * Minimal, this re-introduces a previously removed code-path as
  fallback when reload signal delivery fails.

  [Other Info]

   * original bug report below

  new initctl should fallback to old reload signal semantics, if pid1
  doesn't export reload dbus method

  as per comment
  https://bugs.launchpad.net/upstart/+bug/893021/comments/2

  I'm currently testing Precise to Trusty upgrades and encountered - while troubleshooting bug http://pad.lv/1301962 - this issue:
  # initctl reload dbus
  initctl: Method "Reload" with signature "" on interface "com.ubuntu.Upstart0_6.Instance" doesn't exist

  The issue at hand is that during the upgrade the 'upstart' package
  will be updated but Precise's Upstart is still running until a reboot.
  Trusty's 'upstart' package ships a new 'initctl' binary that handles
  reloads only via the 'Reload' D-Bus method. Precise's Upstart doesn't
  support the 'Reload' D-Bus method though.

  Can Trusty's initctl binary be patched so that it falls back to the previous reload behavior if the Upstart version in use doesn't support the 'Reload' D-Bus method?
  Would you like me to open a new bug for this issue?

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



More information about the foundations-bugs mailing list