GNU ls --color=auto et montages cassés

Le
mpg
Bonjour,

Soit /home/moi/mnt un point de montage pour un répertoire via sshfs, montage
temporairement cassé suite au décès brutal (panne de courant) de la machine
distante. Quand j'essaie de faire un ls (aliasé sur ls --color=auto)
sur /home/moi, ça n'en finit pas et n'affiche rien. Je n'arrive même pas à
tuer vraiment ce processus ls avec kill -9.

Par contre, ls --color=auto marche sur tout autre répertoire que /home/moi
(enfin j'ai pas essayé sur /home/moi/mnt, ça doit foirer aussi),
et /bin/ls /home/moi marche aussi. Visiblement, --color fait des trucs
compliqués avec les répertoires du répertoir courant que ne fait pas ls.

Ce n'est pas un vrai problème, mais ça éveille ma curiosité, car je n'arrive
pas trop à imaginer ce qui peut bien se passer précisément. Avez-vous des
idées (sur le phénomène, ou comment enquêter dessus) ?

Merci,
Manuel.
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
  • Présentation de Color OS 2.1, la nouvelle ROM Android d'Oppo basée sur Android ...
  • Vidéo de gameplay de la version GameBoy Color de Resident Evil jamais commercialisée et ...
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincent Lefevre
Le #16549341
Bonjour,

Dans l'article mpg
Soit /home/moi/mnt un point de montage pour un répertoire via sshfs, montage
temporairement cassé suite au décès brutal (panne de courant) de la machine
distante. Quand j'essaie de faire un ls (aliasé sur ls --color=auto)
sur /home/moi, ça n'en finit pas et n'affiche rien. Je n'arrive même pas à
tuer vraiment ce processus ls avec kill -9.



Le ls doit probablement être bloqué dans le noyau sur un lstat (cf
ci-dessous).

Par contre, ls --color=auto marche sur tout autre répertoire que /home/moi
(enfin j'ai pas essayé sur /home/moi/mnt, ça doit foirer aussi),
et /bin/ls /home/moi marche aussi. Visiblement, --color fait des trucs
compliqués avec les répertoires du répertoir courant que ne fait pas ls.



Je pense que tu aurais le même problème avec l'option -l: un ls seul se
contente d'aller lire le contenu du répertoire, et ces informations sont
probablement dans le cache de sshfs quand tu l'as fait; c'est pour cela
que ça ne bloque pas. En revanche, certaines options demandent d'aller
faire des lstat sur chaque fichier listé pour justement pouvoir afficher
les méta-infos supplémentaires: type du fichier, ses permissions, etc.
Tu peux le voir en faisant un strace.

D'ailleurs, dans un répertoire local, quand on a des liens symboliques
vers des fichiers sous NFS et que le serveur NFS est en panne, un ls
seul fonctionne tandis qu'un "ls -lF" bloque.

Ce n'est pas un vrai problème, mais ça éveille ma curiosité, car je
n'arrive pas trop à imaginer ce qui peut bien se passer précisément.
Avez-vous des idées (sur le phénomène, ou comment enquêter dessus) ?



En général, quand on se pose ce genre de questions, strace (ou ktrace
ou autre, suivant le système) fournit les informations voulues.

--
Vincent Lefèvre 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
mpg
Le #16549411
Le (on) vendredi 15 août 2008 02:01, Vincent Lefevre a écrit (wrote) :

Je pense que tu aurais le même problème avec l'option -l: un ls seul se
contente d'aller lire le contenu du répertoire, et ces informations sont
probablement dans le cache de sshfs quand tu l'as fait;



Euh, en fait le problème survient quand on fait un ls sur le
répertoire /parent/ du point de montage, pas sur le répertoire monté
lui-même (enfin, peut-être aussi, mais j'ai pas pensé à essayé sur le
moment en fait). C'est ça que je trouve marrant.

c'est pour cela
que ça ne bloque pas. En revanche, certaines options demandent d'aller
faire des lstat sur chaque fichier listé pour justement pouvoir afficher
les méta-infos supplémentaires: type du fichier, ses permissions, etc.
Tu peux le voir en faisant un strace.



Je vais essayer alors. Si j'arrive à reproduire le truc : j'ai beau tuer
aussi abruptement que je peux le processus sftp côté serveur, ça semble se
terminer proprment et en tout cas je ne reproduis pas de problème côté
client. Si je dois éteindre brutalement le serveur pour enquêter, ça me
refroidit un peu quand même.

En général, quand on se pose ce genre de questions, strace (ou ktrace
ou autre, suivant le système) fournit les informations voulues.



Noté, je suis en train de parcourir le man pour m'en faire un idée et j'y
penserai la prochaine fois.

Manuel.
Publicité
Poster une réponse
Anonyme