ifup-wait-all-auto does not wait for interfaces to be fully up
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ifupdown (Ubuntu) |
Fix Released
|
High
|
Martin Pitt | ||
Vivid |
Fix Released
|
High
|
Martin Pitt |
Bug Description
The change to ifup@.service done as part of LP 1425376 appears to break the ordering of units marked as "After=
Infinity suggested this change as a likely suspect:
diff -Nru systemd-
--- systemd-
+++ systemd-
@@ -6,10 +6,8 @@
DefaultDepende
[Service]
-Type=oneshot
-ExecStart=
-ExecStartPost=
# only fail if ifupdown knows about the iface AND it's not up
-ExecStartPost=
+ExecStart=/bin/sh -ec 'ifup --allow=hotplug %I; ifup --allow=auto %I; \
+ if ifquery %I >/dev/null; then ifquery --state %I >/dev/null; fi'
ExecStop=
RemainAfterExi
and, indeed, reverting this (copying ifup@.service from a few-days old vivid image to a current image) resolves the problem.
The affected version is ubuntu-
affects: | linux (Ubuntu) → systemd (Ubuntu) |
tags: | added: systemd-boot |
summary: |
- change for LP 1425376 breaks systemd After=network-online.target + ifup-wait-all-auto does not wait for interfaces to be fully up |
Martin, this looks like it renders the network-online target entirely useless. When we're in Austin, I think you, me, and stgraber should sit down and argue a bit about what "correct" behaviour is, but I'd guess it'll looks something like "block on a one-shot attempt to bring up the network, and if that fails miserably, background a second attempt so the boot can continue". Ish.