[Touch-packages] [Bug 1577844] Re: Drop unnecessary blocking of all net udev rules

2016-06-01 Thread Scott Moser
** No longer affects: ifupdown (Ubuntu)

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

Title:
  Drop unnecessary blocking of all net udev rules

Status in cloud-init package in Ubuntu:
  Triaged

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1577844] Re: Drop unnecessary blocking of all net udev rules

2016-05-27 Thread Launchpad Bug Tracker
** Branch linked: lp:~smoser/cloud-init/trunk.fix-networking

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

Title:
  Drop unnecessary blocking of all net udev rules

Status in cloud-init package in Ubuntu:
  Triaged
Status in ifupdown package in Ubuntu:
  Invalid

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1577844] Re: Drop unnecessary blocking of all net udev rules

2016-05-09 Thread Scott Moser
** Changed in: cloud-init (Ubuntu)
   Importance: Undecided => Medium

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

Title:
  Drop unnecessary blocking of all net udev rules

Status in cloud-init package in Ubuntu:
  Triaged
Status in ifupdown package in Ubuntu:
  Invalid

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1577844] Re: Drop unnecessary blocking of all net udev rules

2016-05-04 Thread Martin Pitt
Also note that blocking the uevents will not actually work for the
renaming if there is an initramfs involved. I. e. it will work in
containers, but not QEMU or bare metal.

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

Title:
  Drop unnecessary blocking of all net udev rules

Status in cloud-init package in Ubuntu:
  Triaged
Status in ifupdown package in Ubuntu:
  Invalid

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1577844] Re: Drop unnecessary blocking of all net udev rules

2016-05-04 Thread Scott Moser
some futher thought one reason for the blocking of udev was to have the .link 
files that cloud-init wrote apply.
It turns out that systemd.link will only rename devices once (based on a 
property in the devices /sys that says it has been renamed).

So, for cloud-init to have these apply we will probably have to unbind
and bind the device to clear that. that will also generate a hotplug
event to get the device changed.

http://paste.ubuntu.com/16220589/


** Attachment added: "unlink and relink script"
   
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+attachment/4655826/+files/unlink-link-dev

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

Title:
  Drop unnecessary blocking of all net udev rules

Status in cloud-init package in Ubuntu:
  Triaged
Status in ifupdown package in Ubuntu:
  Invalid

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1577844/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp