Le nombre de volumes sshfs montés via fstab donne un fichier zombie (osxfuse)

1

J'ai installé osxfuse 3.7.1, sshfs 2.10, libérez des librairies 2.9.7 sous High Sierra 10.13.3.

Les choses semblent fonctionner, sauf que si je monte un répertoire distant via fstab, lors du démontage, il reste un point de montage dans un état zombie, et la seule chose que je puisse faire avec ce chemin est de le réutiliser pour un montage sshfs, comme racine. Bien qu'il existe un truc étrange par lequel je peux récupérer le point de montage en transférant le zombiness dans un fichier différent (voir ci-dessous).

Mon /etc/fstabest:

me@host:/home/me  /Users/me/tmp/foo  sshfs  allow_other  0  0

Cela démontre le problème (ici, je suis en train d'utiliser diskutil umountmais umountéjecter dans l'interface graphique du Finder donne le même résultat):

Tout d’abord, avec sshfs directement (pas de problèmes):

$ cd /Users/me/tmp

$ mkdir foo
$ ls -l
drwxr-x--x  2 me  staff    64B 13 Feb 20:41 foo
$ sshfs me@host:/home/me foo
$ ls foo/
    # OK, contents of the distant directory.
$ diskutil umount foo
Unmount successful for foo
$ ls -l
drwxr-x--x  2 me  staff    64B 13 Feb 20:41 foo
    # umount really worked.

Deuxièmement, via /etc/fstab(mène à un fichier zombie):

$ sudo cp /etc/fstab /etc/fstab.backup
$ echo "me@host:/home/me  $PWD/foo  sshfs  allow_other  0  0" | sudo tee /etc/fstab >/dev/null
$ mount $PWD/foo
$ ls foo/
   #  OK, contents of the distant directory.
$ diskutil umount foo
Unmount successful for foo

Cependant, en réalité, c’est maintenant foo" zombie ":

$ ls -l
dr-xr-xr-x  2 root      wheel     1B 13 Feb 21:04 foo
    # (Ownership/timestamp have changed.)
$ sudo chown me:staff foo
chown: foo: No such file or directory
$ sudo ls foo
ls: foo: No such file or directory
$ sudo rm foo
rm: bar: is a directory
$ sudo rmdir foo
rmdir: foo: Resource busy
$ ls /Volumes
Macintosh HD
$ sudo lsof foo
    # Nothing.

À ce stade, le point de montage fooest devenu un fichier zombie et je ne peux presque pas interagir avec lui. Même si je redémarre, le fichier est toujours dans son état problématique.

La seule chose que je peux faire est de le remonter en tant que root:

$ mount $PWD/foo
mount_osxfuse: failed to mount /Users/me/tmp/foo@/dev/osxfuse0: Operation not permitted
$ sudo mount $PWD/foo
$ ls foo/
    #  OK, contents of the distant directory.
$ sudo diskutil umount foo
# (Back to the same zombie state.)

Et je peux transférer le zombiness dans un répertoire différent:

$ mkdir bar
$ ls -l
drwxr-x--x  2 me    staff    64B 13 Feb 21:16 bar
dr-xr-xr-x  2 root  wheel     1B 13 Feb 21:12 foo
$ echo "me@host:/home/me  $PWD/bar  sshfs  allow_other  0  0" | sudo tee /etc/fstab >/dev/null
$ mount $PWD/bar
$ ls bar/
    # OK, contents of the distant directory.
$ ls -l -d foo
dr-xr-xr-x  2 root  wheel     1B 13 Feb 21:12 foo
$ diskutil umount bar
$ ls -l
dr-xr-xr-x  2 root  wheel     1B 13 Feb 21:19 bar
drwxr-x--x  2 me    staff    64B 13 Feb 20:41 foo
    # After umounting bar:
    # foo’s ownerships is me:staff again, bar is zombie.

Des idées? Est-ce que je fais quelque chose de mal?

n.caillou
la source
Quand fooest un "zombie", quelle est la sortie, le cas échéant, de sudo lsof foo? Y a-t- il des processus ssh à l'hôte distant en cours d' exécution ( ps -ef|grep "me@host"Il y a un format d'entrée fstab alternative que vous pouvez essayer: sshfs#me@host:/home/me /Users/me/tmp/foo fuse allow_other 0 0.
jaume
@jaume Aucune des deux recherches ne génère quoi que ce soit. Si /etc/fstab/vous changez de version, la commande de montage échouera car elle /Library/Filesystems/fuse.fs/n’existe pas. Utiliser osxfuseau lieu de fusein /etc/fstabprovoque l' utilisation de la commande mount /Library/Filesystems/osxfuse.fs/Contents/Resources/mount_osxfusequi se plaint que "Ce programme n'est pas destiné à être appelé directement. La bibliothèque OSXFUSE l'appelle".
n.caillou
Désolé de lire que cela n'a pas résolu votre problème. J'espère que quelqu'un apportera une solution ou un indice utile.
Jaume