[Bug 266720] Sending mountd(8) SIGHUP to reload exports is disruptive

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 30 Sep 2022 11:03:49 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266720

            Bug ID: 266720
           Summary: Sending mountd(8) SIGHUP to reload exports is
                    disruptive
           Product: Base System
           Version: 13.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: bf@cebitec.uni-bielefeld.de

NFSv4 server is FreeBSD-13.1, problem occurs at least on Linux and Solaris
clients.

The seems to be a small time window triggered by reloading /etc/exports (using
SIGHUP @mountd, or 'service mountd reload') causing valid client requests
getting EPERM. We can reliably reproduce the glitch by running this little Perl
script on a client:

#!/usr/bin/perl

while (1) {
    open my $fh, $0 or warn($!);
    sysread $fh, my $s, 64, 0 or warn($!);
    close $fh
}

and SIGHUPing the mountd on the FreeBSD server. Many entries in /etc/exports
help hitting the critical time window.

For our use case this problem has show-stopper qualities since we manage export
ACLs on a per-volume basis, and we have lots of volumes.

-- 
You are receiving this mail because:
You are the assignee for the bug.