Bug 1314200

Summary: nfs-server fails if hosts in exports can't be resolved
Product: Red Hat Enterprise Linux 7 Reporter: Stefan Meyer <smeyer>
Component: nfs-utilsAssignee: Steve Dickson <steved>
Status: CLOSED DUPLICATE QA Contact: Yongcheng Yang <yoyang>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: eguan, fs-qe, steved
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-04-26 18:39:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Back ported patch none

Description Stefan Meyer 2016-03-03 08:18:49 UTC
Description of problem:
If a notebook is switched between networks not all target hostnames are resolvable because the DNS servers are not the same.

Version-Release number of selected component (if applicable):
RHEL 7.x

How reproducible:
On every RHEL 7 system, see procedure below

Steps to Reproduce:
1. Add entry to /etc/exports
    /tmp   thishostnamewontresolve.example.com(ro)
2. Restart nfs-server
   systemctl restart nfs-server


Actual results:
nfs-server fails to start

Expected results:
The nfs server should warn about a non-resolvable hostname but should not fail.

Additional info:
Referencing Fedora bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1115179

Comment 5 Steve Dickson 2016-04-18 11:33:36 UTC
(In reply to Stefan Meyer from comment #0)
> Description of problem:
> If a notebook is switched between networks not all target hostnames are
> resolvable because the DNS servers are not the same.
> 
> Version-Release number of selected component (if applicable):
> RHEL 7.x
> 
> How reproducible:
> On every RHEL 7 system, see procedure below
> 
> Steps to Reproduce:
> 1. Add entry to /etc/exports
>     /tmp   thishostnamewontresolve.example.com(ro)
> 2. Restart nfs-server
>    systemctl restart nfs-server
> 
> 
> Actual results:
> nfs-server fails to start
> 
> Expected results:
> The nfs server should warn about a non-resolvable hostname but should not
> fail.
> 
What is the failure? Changing DNS server mid stream is just not a good
idea... and I don't know if we ever supported anything like that...

Comment 6 Steve Dickson 2016-04-18 12:31:18 UTC
This upstream commit could help

commit 076dd803330d93819c6e7862f515a8fa3997a83b
Author: Henrique Martins <linux>
Date:   Tue Nov 4 15:12:16 2014 -0500

    exportfs: changes handling of unresolvable entries
    
    The patch to nfs/exportfs to allow nfsd to start when
    there are some, but not all, unresolvable entries in
    /etc/exports.
    
    Signed-off-by: Henrique Martins <linux>
    Signed-off-by: Steve Dickson <steved>

Comment 8 Steve Dickson 2016-04-18 14:28:42 UTC
Created attachment 1148226 [details]
Back ported patch

Note, the following change was also needed so exports
failures are handled in the same matter as RHEL6:

diff -up nfs-utils-1.3.0/systemd/nfs-server.service.orig nfs-utils-1.3.0/systemd/nfs-server.service
--- nfs-utils-1.3.0/systemd/nfs-server.service.orig 2016-04-18 10:16:04.132230396 -0400
+++ nfs-utils-1.3.0/systemd/nfs-server.service  2016-04-18 10:17:19.528701941 -0400
@@ -23,13 +23,13 @@ EnvironmentFile=-/run/sysconfig/nfs-util

 Type=oneshot
 RemainAfterExit=yes
-ExecStartPre=/usr/sbin/exportfs -r
+ExecStartPre=-/usr/sbin/exportfs -r
 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS
 ExecStop=/usr/sbin/rpc.nfsd 0
 ExecStopPost=/usr/sbin/exportfs -au
 ExecStopPost=/usr/sbin/exportfs -f

-ExecReload=/usr/sbin/exportfs -r
+ExecReload=-/usr/sbin/exportfs -r

 [Install]
 WantedBy=multi-user.target