[Bug 243551] Cannot "svn checkout" in automounted $HOME

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Jan 23 20:47:39 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=243551

            Bug ID: 243551
           Summary: Cannot "svn checkout" in automounted $HOME
           Product: Base System
           Version: 12.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs at FreeBSD.org
          Reporter: joerg at FreeBSD.org

On a server where user's $HOME is automounted through the following maps:

/etc/auto_master:

/home           auto_home

/etc/auto_home:

*       -nfsv4  server:/home/&

trying to "svn checkout" a new working copy from any SVN server yields:

joerg at daemon ~/tmp% svn co https://svn.freebsd.org/base
svn: E000005: Can't check path '/home/.svn/wc.db': Input/output error

The respective ktrace output is:

  8779 svn      NAMI  "/home/joerg/.svn"
  8779 svn      RET   fstatat -1 errno 2 No such file or directory
  8779 svn      CALL 
fstatat(AT_FDCWD,0x801abc0d0,0x7fffffffdfa0,0x200<AT_SYMLINK_NOFOLLOW>)
  8779 svn      NAMI  "/home/.svn"
  8779 svn      STRU  struct stat {dev=18446744072887533315, ino=4,
mode=040755, nlink=3, uid=0, gid=0, rdev=0, atime=1579769649.589640074,
mtime=1579769649.589640074, ctime=1579769649.589640074,
birthtime=1579769649.589640074, size=512, blksize=4096, blocks=1, flags=0x0 }
  8779 svn      RET   fstatat 0
  8779 svn      CALL 
fstatat(AT_FDCWD,0x8013e6d80,0x7fffffffdf30,0x200<AT_SYMLINK_NOFOLLOW>)
  8779 svn      NAMI  "/home/.svn/wc.db"
  8779 svn      RET   fstatat -1 errno 5 Input/output error
  8779 svn      CALL  write(0x2,0x80137e1e0,0x46)
  8779 svn      GIO   fd 2 wrote 70 bytes
       "svn: E000005: Can't check path '/home/.svn/wc.db': Input/output error
       "

So SVN traverses directories upwards for .svn/wc.db entries. Surprisingly
enough, stat(2) on /home/.svn does not yield the expected ENOENT but a valid
result. (NB: /home/.svn does *not* exist on the NFS server.) However, trying to
access wc.db under that ficticous directory then yields EIO.

The automountd debug log looks like that:

Jan 23 21:34:44 daemon automountd[8692]: map "auto_home" maps to
"/etc/auto_home"
Jan 23 21:34:44 daemon automountd[8692]: done parsing map "auto_home"
Jan 23 21:34:44 daemon automountd[8692]: map may contain wildcard entries
Jan 23 21:34:44 daemon automountd[8692]: found node defined at auto_home:1; it
is a mountpoint
Jan 23 21:34:44 daemon automountd[8692]: fstype not specified in options;
defaulting to "nfs"
Jan 23 21:34:44 daemon automountd[8692]: retrycnt not specified in options;
defaulting to 1
Jan 23 21:34:44 daemon automountd[8692]: executing "mount -t nfs -o
nfsv4,automounted,retrycnt=1 alfred.sax.de:/home/joerg /home/joerg/" as pid
8693
Jan 23 21:34:44 daemon automountd[8692]: "mount -t nfs -o
nfsv4,automounted,retrycnt=1 alfred.sax.de:/home/joerg /home/joerg/", pid 8693,
terminated gracefully
Jan 23 21:34:44 daemon automountd[8692]: mount done; exiting
Jan 23 21:34:44 daemon automountd[8692]: completing request 100 with error 0
Jan 23 21:34:44 daemon automountd[8675]: child process 8692 terminated
gracefully
Jan 23 21:34:44 daemon automountd[8675]: waiting for request from the kernel
Jan 23 21:35:26 daemon automountd[8675]: got request; forking child process #0
Jan 23 21:35:26 daemon automountd[8675]: waiting for request from the kernel
Jan 23 21:35:26 daemon automountd[8705]: got request 101: from map auto_home,
path /home/.svn/, prefix "/home", key ".svn", options ""
Jan 23 21:35:26 daemon automountd[8705]: parsing map "auto_home"
Jan 23 21:35:26 daemon automountd[8705]: map "auto_home" maps to
"/etc/auto_home"
Jan 23 21:35:26 daemon automountd[8705]: done parsing map "auto_home"
Jan 23 21:35:26 daemon automountd[8705]: map may contain wildcard entries
Jan 23 21:35:26 daemon automountd[8705]: found node defined at auto_home:1; it
is a mountpoint
Jan 23 21:35:26 daemon automountd[8705]: fstype not specified in options;
defaulting to "nfs"
Jan 23 21:35:26 daemon automountd[8705]: retrycnt not specified in options;
defaulting to 1
Jan 23 21:35:26 daemon automountd[8705]: executing "mount -t nfs -o
nfsv4,automounted,retrycnt=1 alfred.sax.de:/home/.svn /home/.svn/" as pid 8706
Jan 23 21:35:26 daemon automountd[8705]: completing request 101 with error 5
Jan 23 21:35:26 daemon automountd[8675]: child process 8705 terminated with
exit status 1
Jan 23 21:35:26 daemon automountd[8675]: waiting for request from the kernel
Jan 23 21:35:27 daemon automountd[8675]: got request; forking child process #0
Jan 23 21:35:27 daemon automountd[8675]: waiting for request from the kernel
Jan 23 21:35:27 daemon automountd[8708]: got request 102: from map auto_home,
path /home/.svn/, prefix "/home", key ".svn", options ""
Jan 23 21:35:27 daemon automountd[8708]: parsing map "auto_home"
Jan 23 21:35:27 daemon automountd[8708]: map "auto_home" maps to
"/etc/auto_home"
Jan 23 21:35:27 daemon automountd[8708]: done parsing map "auto_home"
Jan 23 21:35:27 daemon automountd[8708]: map may contain wildcard entries
Jan 23 21:35:27 daemon automountd[8708]: found node defined at auto_home:1; it
is a mountpoint
Jan 23 21:35:27 daemon automountd[8708]: fstype not specified in options;
defaulting to "nfs"
Jan 23 21:35:27 daemon automountd[8708]: retrycnt not specified in options;
defaulting to 1
Jan 23 21:35:27 daemon automountd[8708]: executing "mount -t nfs -o
nfsv4,automounted,retrycnt=1 alfred.sax.de:/home/.svn /home/.svn/" as pid 8709
Jan 23 21:35:27 daemon automountd[8708]: completing request 102 with error 5
Jan 23 21:35:27 daemon automountd[8675]: child process 8708 terminated with
exit status 1
Jan 23 21:35:27 daemon automountd[8675]: waiting for request from the kernel
Jan 23 21:35:28 daemon automountd[8675]: got request; forking child process #0
Jan 23 21:35:28 daemon automountd[8675]: waiting for request from the kernel
Jan 23 21:35:28 daemon automountd[8711]: got request 103: from map auto_home,
path /home/.svn/, prefix "/home", key ".svn", options ""
Jan 23 21:35:28 daemon automountd[8711]: parsing map "auto_home"
Jan 23 21:35:28 daemon automountd[8711]: map "auto_home" maps to
"/etc/auto_home"
Jan 23 21:35:28 daemon automountd[8711]: done parsing map "auto_home"
Jan 23 21:35:28 daemon automountd[8711]: map may contain wildcard entries
Jan 23 21:35:28 daemon automountd[8711]: found node defined at auto_home:1; it
is a mountpoint
Jan 23 21:35:28 daemon automountd[8711]: fstype not specified in options;
defaulting to "nfs"
Jan 23 21:35:28 daemon automountd[8711]: retrycnt not specified in options;
defaulting to 1
Jan 23 21:35:28 daemon automountd[8711]: executing "mount -t nfs -o
nfsv4,automounted,retrycnt=1 alfred.sax.de:/home/.svn /home/.svn/" as pid 8712
Jan 23 21:35:28 daemon automountd[8711]: completing request 103 with error 5
Jan 23 21:35:28 daemon automountd[8675]: child process 8711 terminated with
exit status 1
Jan 23 21:35:28 daemon automountd[8675]: waiting for request from the kernel

Me thinks stat()ing /home/.svn ought to immediately return ENOENT rather than
pretending that directory might exist.

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


More information about the freebsd-bugs mailing list