The reason that udev calls /lib/udev/vlan-network-interface is because
of hotplugging.

During boot up, as network interfaces are detected by the kernel, they
are reported to udev, and udev passes each to vlan-network-interface.
If the vlan-network-interface script detects that a new interface is
configured in ifupdown as a 'vlan-raw-device', then it calls
/etc/network/if-pre-up.d/vlan which creates the vlan interface.

Udev also, after all other processing, calls systemd (or upstart) with
the interface, and that in turn calls ifup for the interface.  Thus,
during boot up, all physical interfaces are ifup'ed directly, and all
vlans are created and also ifup'ed manually.  After all that completes,
then systemd/upstart finally calls ifup -a to bring up any remaining
configured interfaces.

The bootup process does not require vlan interfaces to be created and
configured, as the final 'ifup -a' will create and configure them.
However, after bootup, and physical devices that are hotplugged will be
detected by udev, and passed to systemd/upstart which calls ifup for the
hotplugged interface - but, without udev calling vlan-network-interface,
the hotplugging of a physical interface will not cause any of its
associated vlan interfaces to be created or configured.

So what this means is vlan interfaces do need to be created when their
raw-device interface is detected and/or configured; however, it does not
need to (and, should not happen during) udev processing of the raw-
device interface.  That is what causes the race condition between the
raw device interface and its vlan(s), as described in bug 1573272.

Instead, an physical device's vlan interfaces should be created during
ifup of that physical device.  That way, the vlan interface's raw-device
is guaranteed to be already up and configured, but also vlan interfaces
will be created and configured when a physical device is hotplugged.

I'll investigate updating ifupdown and/or the vlan scripts to change to
this method instead of the current design.

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

Title:
  (on trusty) version 1.9-3ubuntu10.4 regression blocking boot
  completion

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/vlan/+bug/1701023/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to