On Thu, Jan 07, 2016 at 08:11:48PM +0100, Christoph Anton Mitterer wrote: > > First, this is not a critical bug. No unrelated software is actually > > broken, it's just that at boot, apparently some services are started > > earlier than your network devices are configured. > Quoting: > >critical > >makes unrelated software on the system (or the whole system) break > ... > > Other software cannot even start anymore because of that... > If ssh would be affected (which it probably could be, just based on > timing) one may not even be able to log-in anymore. > > What else would you call breaking unrelated software? > ;-)
Suppose the battery of your car key was dead, and it wouldn't unlock your car anymore. Does this break your car? Sure, you cannot drive your car anymore which is really annoying, but the car itself is perfectly fine and not broken. This issue with ifupdown does not *break* any other software. Breaking is when the ifupdown package would start overwriting files from other packages or doing other stuff that would prevent them from working correctly even if you manually started them. > > From your /etc/network/interfaces: > > > > > allow-hotplug eth0 > > > > If you do this, eth0 will be brought up by hotplugging events, which are > > handled completely asynchronous wrt. the normal bootup sequence. So it > > could very well be that systemd tries to start named, bind and sks > > before eth0 is configured. > > I think that was also the reason last time, and IIRC Michael added back > some udevadm settle... or so which solved it. Indeed. > > Please change that line to: > > > > auto eth0 > It does, but the question is whether we can already consider this fixed > by that. I think you can, since this will cause the configuration of eth0 to be done by networking.service, which is always run before network-online.target, so is also run before services like bind, sks, et cetera. Try it out! > IIRC, the installer does allow-hotplug per default... so many if not > most systems will use this to bring up their ifaces, especially on > server systems, where NM hasn't started its invasion yet ;) The problem in your case is that you explicitly bind services to specific IP addresses. If you didn't, then they would allow incoming traffic on any IP address, and they wouldn't care which addresses were already configured by the time those services were started. So you created a situation where some services depend on specific addresses. There is currently unfortunately nothing in the whole boot process, whether you are using systemd or sysvinit, or ifupdown or network-manager, that will ensure such a dependency is satisfied. In fact, it was pure luck that your setup worked with ifupdown 0.7.54, because even then there was nothing explicitly ensuring that hotplug interfaces were configured before networking services were started. Because the installer cannot tell whether a network device is something that is onboard or whether it is something that is plugged in later, it defaults to allow-hotplug (which covers both cases). This also works fine with the default configuration of almost all network services. But of course, there are cases such as yours where it doesn't work like you want it to. One idea we have is to add a systemd service that delays network-online.target until some (configurable) condition is met. The question is then what that condition is. Some possibilities are: * Wait for a default gateway to be configured * Wait for a specific interface to be brought up * Wait for a specific address to be configured on any interface I guess the latter two would work equally well for you. Once I have a package that implements this, I'll ask you to test it. -- Met vriendelijke groet / with kind regards, Guus Sliepen <g...@debian.org>
signature.asc
Description: Digital signature