On Tue, 2017-12-19 at 07:16 -0500, Sam Varshavchik wrote:
Gordon Messmer writes:
> On 12/18/2017 05:52 AM, Sam Varshavchik wrote:
> > Time IP addresses
> > ======== ==================
> > 08:35:34
> > 08:35:35 192.168.0.1
> >
> > At 08:35:34 the server had no IP addresses
>
>
> Well, it probably had 127.0.0.1, which brings into question what the
> complete state of the network was.
>
> Could you arrange to execute "ip addr show | logger" in your unfrak
script?
> That way we get all of the interfaces and all of the addresses regardless of
> family.
>
> Could you also see if removing the "-s" flag from
> /usr/lib/systemd/system/NetworkManager-wait-online.service changes the
> behavior of the system?
Running just "ip addr show | logger" was not conclusive. Looks like the
overhead of doing so delays things long enough so even the first time this
actually runs all the network interfaces have their IP addresses already
assigned.
Removing the -s option from actually makes things worse. The script has to
wait noticably longer before all IP addresses are assigned:
Subject: systemd network initialization unfrak report
Time IP addresses
======== ==================
06:52:56
06:52:57
06:52:58
06:52:59 192.168.0.1
Usually it's 1 or 2 seconds. Without the -s option it's 4-5 seconds.
This seems consistent with the description of what the -s option does, from
the man page. The way I parse its man page entry is that the -s option
actually waits for more things to happen, before it's done. So removing that
option makes NetworkManager's definition of when things are online occur
much earlier.
This is confirmed by running "ip addr show | logger" without -s option. This
produces some useful results. This time, the first time "ip addr show" runs
it's early enough so that the network is not fully initialized.
syslog shows two runs of "ip addr show", showing no IP addresses configured
on one of the two network interfaces. The 2nd network interface already has
its IP addresses assigned. This is followed by some messages from
NetworkManager, then another run of "ip addr show", showing all network
interfaces with assigned IP addresses.
emd[1]: Started Unfrak systemd network startup.
Note that "ip addr show" ran as part of the script that has a dependency on
nm-line.
After reversing all changes, putting the -s option back in, and not running
"ip addr", repeated boots shows the status quo being restored. The presence
of the -s option reduces the additional time that the script needs to wait
for all IP addresses to be assigned to 1 or 2 seconds. But it still has to
wait, since nm-online -s -q returns too early.
I have read the nm-online man page about 10 times and I am still not
clear what it is telling me.
If your interpretation is correct I do not understand how removing the -s
option solves my NSF mount problem.
Aside:
I have confirmed on a second machine that with the -s option
present sometimes the NFS mount fails.
First 10 boots no mount failures aha I thought!
Second 10 boots 2 mount failures