[Pkg-sysvinit-devel] Bug#746358: systemd: system boot hangs if /etc/network/interfaces contains a bridge interface

Michael Biebl biebl at debian.org
Wed Apr 30 11:26:00 UTC 2014


Am 30.04.2014 11:58, schrieb Aurelien Jarno:
> On Tue, Apr 29, 2014 at 03:10:02PM +0200, Michael Biebl wrote:
>> Am 29.04.2014 13:10, schrieb Jason Alavaliant:
>>> On 2014-04-29 22:36, Michael Biebl wrote:
>>>> Am 29.04.2014 11:31, schrieb Jason Alavaliant:
>>
>>>> Do you have an NFS / remote fs configuration in your /etc/fstab?
>>>
>>> Yes I've got a nfs4 mounted home directory
>>> server.local:/     /home           nfs4    defaults        0       0
>>
>> I suspect the hang to be caused by the NFS fstab entry. Can you comment
>> out the entry and reboot so we have confirmation?
> 
> I got the same issue, and I don't have a bridge interface, but I do have
> a NFS entry in /etc/fstab. Disabling it makes the reboot to succeed.
> 
> Given that systemd is now the default, if every persons with an NFS entry
> in fstab will get their systems broken, it might be a good idea to increase
> the severity of this bug.
> 
>> If so, can you please try the following patch for
>> /etc/network/if-up.d/mountnfs with the NFS mount re-enabled.
>>
>> --- a/network/if-up.d/mountnfs
>> +++ b/network/if-up.d/mountnfs
>> @@ -7,6 +7,10 @@
>>  #                    Also mounts SMB filesystems now, so the name of
>>  #                    this script is getting increasingly inaccurate.
>>
>> +if [ -d /run/systemd/system ] ; then
>> +       systemctl status network.target > /dev/null || exit 0
>> +fi
>> +
>>  PATH=/sbin:/bin
>>  . /lib/init/vars.sh
> 
> This patch works for me, thanks.
> 

Yeah. In the end though it's an issue in the mountfs / rpcbind interaction.

The rpcbing SysV init script has Required-Start: $network. And $network
is provided by the /etc/init.d/networking init script. As
/etc/network/if-up.d/mountnfs starts the rpcbind SysV init script, this
leads to a deadlock if $network (aka network.target) is not yet up.
The difference between systemd and sysvinit is, that systemd treats
those dependencies dynamically, not statically like sysvinit/insserv at
install time.

I already poked Roger Leigh, our sysvinit maintainer about this, but
haven't heard back from him yet.

Let's hope one of our sysvinit maintainers can chime in here.

Fwiw, it was pointed out on IRC that the above check is rather
heavy-weight, since systemctl status queries the journal, a better check
would be

	systemctl --quiet is-active network.target || exit 0


Cheers,
Michael


-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-sysvinit-devel/attachments/20140430/5b3d28d9/attachment.sig>


More information about the Pkg-sysvinit-devel mailing list