nfs-kernel-server fails: hostname "has non-inet addr" on boot, before eth0 comes up
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
nfs-utils (Ubuntu) |
Triaged
|
Medium
|
Unassigned |
Bug Description
I upgraded my server to Natty and now the two directories that this server exports to various other machines on the network, do not get exported during an ordinary bootup. However, after startup, if I run "exportfs -av" on them, they export just fine.
/var/log/syslog shows:
Jul 5 16:17:54 om exportfs[1585]: name1.frob.com has non-inet addr
Jul 5 16:17:54 om exportfs[1585]: last message repeated 3 times
Jul 5 16:17:54 om exportfs[1585]: name2.frob.com has non-inet addr
Jul 5 16:17:54 om exportfs[1585]: name2.frob.com has non-inet addr
(I've replaced the actual names with name1.frob.com and name2.frob.com).
The problem appears to occur because NetworkManager is still in the process of bringing up the network interface (according to other interleaved syslog reports). These hostnames need DNS from another server to resolve them.
The root cause of the problem appears to be that Natty doesn't make the nfs-kernel-server service wait until the first Ethernet comes up. Thus, nfs-kernel-service can't resolve domain names in the /etc/exports file, and it produces this very confusing message and doesn't actually export the filesystems.
Ubuntu release: 11.04 (natty)
Version of nfs-utils: Installed: 1:1.2.2-4ubuntu5
Related programs: upstart, NetworkManager
On Wed, Jul 06, 2011 at 02:32:43AM -0000, John Gilmore wrote:
> The problem appears to occur because NetworkManager is still in the
> process of bringing up the network interface (according to other
> interleaved syslog reports). These hostnames need DNS from another
> server to resolve them.
> The root cause of the problem appears to be that Natty doesn't make the
> nfs-kernel-server service wait until the first Ethernet comes up. Thus,
> nfs-kernel-service can't resolve domain names in the /etc/exports file,
> and it produces this very confusing message and doesn't actually export
> the filesystems.
That's correct. The /etc/init/ rc-sysinit. conf job waits for the loopback
interface to be up, but does not wait for other interfaces; this is
consistent with the historical guarantee provided by pre-upstart init
scripts on Ubuntu as well, but as boot becomes faster it's more common to
lose a race against the network.
Ultimately, nfs-kernel-server should switch to using a native upstart job,
and should probably be set to start on net-device-up IFACE!=lo by default.