Bonjour,
je suis en train d'automatiser la création de disques virtuels orientés VBox (fichiers .vdi, donc), et je vais de surprise en surprise, concernant le fonctionnement aléatoire de mon script.
Certaines parties n'ont pas été touchées depuis plusieurs semaines, ce n'est pas sur elles que je travaille, et pourtant ce sont elles qui échouent, aléatoirement ; je me demande si ce n'est pas lié au multi-tâches et à d'autres choses similaires qui se passent dans notre dos et qu'on ne voit pas...
Deux exemples :
extrait 1
La solution (mais est-ce que le fait que ça fonctionne 10 ou 20 fois c'est valable ? Est-ce que ça ne va pas planter à la 21e fois ?) pour le moment consiste à rajouter sleep 0.5 juste avant l'appel à vdfuse mais franchement, ça fait chichi...
Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 sync # -2- connexion du fichier-disque echo " connexion du fichier $fichier sur le point de montage $vdisque..." vdfuse -t VDI -f $fichier $vdisque > /dev/null 2>&1 # erreur 1 intermittente ici, malgré le sync au dessus, et pourtant # mount montre que le fichier est monté ! Alors pourquoi erreur 1 ? err=$?
Ça fait chichi parce que j'ai mis 0.5 complètement au pif, ça aurait pu être 0.8 ou 0.3, ou pourquoi pas 0.1 ou tout autant 10... J'aime pas les machins pifométriques
Et question subsidiaire, à quoi sert sync s'il faut le compléter / le blinder par un sleep ?
Quelqu'un connaît une autre commande, moins aléatoire et plus définitive ?
extrait 2
Même topo, un message d'erreur abscons généré par mke2fs que je n'avais jamais vu lors des précédents tests, solutionné (really ?) en rajoutant un sleep 0.5 après le sync qui termine / clôture l'étape précédente...
Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 sync # -3b- formatage partition echo " formatage de la partition $vdisque/$partoch..." mke2fs -q -t ext4 -F -F $vdisque/$partoch err=$?
Bonne journée,
Partager