Activity log for bug #1577844

Date Who What changed Old value New value Message
2016-05-03 16:02:18 Martin Pitt bug added bug
2016-05-03 16:29:05 Martin Pitt description ifup@.service can (and often does) run for a particular interface before networking.service runs. This is brittle as during early boot ifup is prone to fail: / might still be read-only, /var might not yet exist or be writable, dhclient-enter-hooks.d/ or if-up.d/ hooks might silently fail, etc. It is also unnecessary as networking.service will bring up all "auto" and all present "allow-hotplug" interfaces anyway, and it runs at the right time. We should make either 80-ifupdown.rules or ifup@.service ignore events until networking.service is active, or wait until after it has run (slower, but avoids race conditions when hotplug events happen while networking.service is running). Ideally adding After=networking.service ought to suffice (need to check that activating the unit is properly postponed until after networking.service), or we need to do that waiting/ignoring in the ExecStart= shell code. https://bugs.debian.org/752919 is related to this issue. ifup@.service can (and often does) run for a particular interface before networking.service runs. This is brittle as during early boot ifup is prone to fail: / might still be read-only, /var might not yet exist or be writable, dhclient-enter-hooks.d/ or if-up.d/ hooks might silently fail, etc. It is also unnecessary as networking.service will bring up all "auto" and all present "allow-hotplug" interfaces anyway, and it runs at the right time. We should make either 80-ifupdown.rules or ifup@.service ignore events until networking.service is active, or wait until after it has run (slower, but avoids race conditions when hotplug events happen while networking.service is running). Ideally adding After=networking.service ought to suffice (need to check that activating the unit is properly postponed until after networking.service), or we need to do that waiting/ignoring in the ExecStart= shell code. This also affects cloud-init's setup of networking: this currently jumps through a lot of bad hoops to make sure that ifup@ does not run until after cloud-init-local.service. This includes blocking udev rules for an indefinite time, which is racy, a potential deadlock, and highly non-elegant. https://bugs.debian.org/752919 is related to this issue.
2016-05-03 16:29:19 Martin Pitt bug task added cloud-init (Ubuntu)
2016-05-03 16:32:39 Martin Pitt ifupdown (Ubuntu): status New In Progress
2016-05-03 16:32:42 Martin Pitt ifupdown (Ubuntu): assignee Martin Pitt (pitti)
2016-05-03 17:00:52 Martin Pitt description ifup@.service can (and often does) run for a particular interface before networking.service runs. This is brittle as during early boot ifup is prone to fail: / might still be read-only, /var might not yet exist or be writable, dhclient-enter-hooks.d/ or if-up.d/ hooks might silently fail, etc. It is also unnecessary as networking.service will bring up all "auto" and all present "allow-hotplug" interfaces anyway, and it runs at the right time. We should make either 80-ifupdown.rules or ifup@.service ignore events until networking.service is active, or wait until after it has run (slower, but avoids race conditions when hotplug events happen while networking.service is running). Ideally adding After=networking.service ought to suffice (need to check that activating the unit is properly postponed until after networking.service), or we need to do that waiting/ignoring in the ExecStart= shell code. This also affects cloud-init's setup of networking: this currently jumps through a lot of bad hoops to make sure that ifup@ does not run until after cloud-init-local.service. This includes blocking udev rules for an indefinite time, which is racy, a potential deadlock, and highly non-elegant. https://bugs.debian.org/752919 is related to this issue. ifup@.service can (and often does) run for a particular interface before networking.service runs. This is brittle as during early boot ifup is prone to fail: / might still be read-only, /var might not yet exist or be writable, dhclient-enter-hooks.d/ or if-up.d/ hooks might silently fail, etc. It is also unnecessary as networking.service will bring up all "auto" and all present "allow-hotplug" interfaces anyway, and it runs at the right time. We should make either 80-ifupdown.rules or ifup@.service ignore events until networking.service is active, or wait until after it has run (slower, but avoids race conditions when hotplug events happen while networking.service is running). Thus we need to add After=networking.service to ifup@.service, so that this only does stuff after doing the "coldplug" configuration. This also affects cloud-init's setup of networking: this currently jumps through a lot of bad hoops to make sure that ifup@ does not run until after cloud-init-local.service. This includes blocking udev rules for an indefinite time, which is racy, a potential deadlock, and highly non-elegant. https://bugs.debian.org/752919 is related to this issue.
2016-05-03 20:27:29 Martin Pitt bug watch added http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752919
2016-05-03 20:27:29 Martin Pitt bug task added ifupdown (Debian)
2016-05-04 00:07:26 Bug Watch Updater ifupdown (Debian): status Unknown New
2016-05-04 12:57:54 Martin Pitt bug task deleted ifupdown (Debian)
2016-05-04 13:05:16 Martin Pitt ifupdown (Ubuntu): status In Progress Invalid
2016-05-04 13:05:28 Martin Pitt cloud-init (Ubuntu): status New Triaged
2016-05-04 13:05:56 Martin Pitt summary don't run ifup@.service before networking.service Drop unnecessary blocking of all net udev rules
2016-05-04 13:07:51 Martin Pitt description ifup@.service can (and often does) run for a particular interface before networking.service runs. This is brittle as during early boot ifup is prone to fail: / might still be read-only, /var might not yet exist or be writable, dhclient-enter-hooks.d/ or if-up.d/ hooks might silently fail, etc. It is also unnecessary as networking.service will bring up all "auto" and all present "allow-hotplug" interfaces anyway, and it runs at the right time. We should make either 80-ifupdown.rules or ifup@.service ignore events until networking.service is active, or wait until after it has run (slower, but avoids race conditions when hotplug events happen while networking.service is running). Thus we need to add After=networking.service to ifup@.service, so that this only does stuff after doing the "coldplug" configuration. This also affects cloud-init's setup of networking: this currently jumps through a lot of bad hoops to make sure that ifup@ does not run until after cloud-init-local.service. This includes blocking udev rules for an indefinite time, which is racy, a potential deadlock, and highly non-elegant. https://bugs.debian.org/752919 is related to this issue. cloud-inits networking setup currently jumps through a lot of bad hoops to make sure that ifup@ does not run until after cloud-init-local.service. This includes blocking udev rules for an indefinite time, which is racy, a potential deadlock, and highly non-elegant. This is also not necessary: while ifupdown's net udev rule certainly can fire before cloud-init-local, it only asynchronously starts ifup@.service which will be deferred until after network-pre.target and thus after cloud-init-local.service. ------- Original description, which turned out to be completely false and just us being misled: ifup@.service can (and often does) run for a particular interface before networking.service runs. This is brittle as during early boot ifup is prone to fail: / might still be read-only, /var might not yet exist or be writable, dhclient-enter-hooks.d/ or if-up.d/ hooks might silently fail, etc. It is also unnecessary as networking.service will bring up all "auto" and all present "allow-hotplug" interfaces anyway, and it runs at the right time. We should make either 80-ifupdown.rules or ifup@.service ignore events until networking.service is active, or wait until after it has run (slower, but avoids race conditions when hotplug events happen while networking.service is running). Thus we need to add After=networking.service to ifup@.service, so that this only does stuff after doing the "coldplug" configuration. This also affects cloud-init's setup of networking: this currently jumps through a lot of bad hoops to make sure that ifup@ does not run until after cloud-init-local.service. This includes blocking udev rules for an indefinite time, which is racy, a potential deadlock, and highly non-elegant. https://bugs.debian.org/752919 is related to this issue.
2016-05-04 13:07:58 Martin Pitt cloud-init (Ubuntu): assignee Scott Moser (smoser)
2016-05-04 13:08:09 Martin Pitt ifupdown (Ubuntu): assignee Martin Pitt (pitti)
2016-05-04 17:28:26 Scott Moser attachment added unlink and relink script https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+attachment/4655826/+files/unlink-link-dev
2016-05-09 18:44:53 Scott Moser cloud-init (Ubuntu): importance Undecided Medium
2016-05-27 21:04:38 Launchpad Janitor branch linked lp:~smoser/cloud-init/trunk.fix-networking
2016-06-02 00:52:42 Scott Moser bug task deleted ifupdown (Ubuntu)
2016-06-03 13:30:59 Dominique Poulain bug added subscriber Dominique Poulain
2016-06-03 20:22:35 Launchpad Janitor branch linked lp:cloud-init
2016-06-05 02:01:23 Launchpad Janitor cloud-init (Ubuntu): status Triaged Fix Released
2016-06-06 13:33:11 Launchpad Janitor branch linked lp:~smoser/ubuntu/yakkety/cloud-init/pkg
2016-06-22 20:09:16 Launchpad Janitor branch linked lp:~smoser/ubuntu/xenial/cloud-init/pkg
2016-06-23 18:59:16 Scott Moser nominated for series Ubuntu Xenial
2016-06-23 18:59:16 Scott Moser bug task added cloud-init (Ubuntu Xenial)
2016-06-23 18:59:30 Scott Moser cloud-init (Ubuntu Xenial): importance Undecided Medium
2016-06-23 18:59:30 Scott Moser cloud-init (Ubuntu Xenial): status New In Progress
2016-06-23 18:59:39 Scott Moser cloud-init (Ubuntu Xenial): assignee Scott Moser (smoser)
2016-07-11 15:58:05 Scott Moser cloud-init (Ubuntu Xenial): status In Progress Fix Released