fix(livraison) : la pose remplace un binaire en service #15
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/pose-binaire-en-service"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Le defaut
La deuxième livraison du 108 a échoué, alors que la première avait réussi :
La pose écrasait le fichier en place — ce qu'un binaire en cours d'exécution
refuse (
Text file busy, ETXTBSY). Autrement dit : la livraison ne pouvait plusremplacer le service qu'elle venait elle-même de poser. Comme le comportement
est intermittent (la n°64 a réussi), la chaîne échouait tantôt, réussissait
tantôt, sans rien dire de solide.
C'est le contrôle de somme, ajouté justement pour ça, qui a empêché la
livraison d'annoncer un succès sans rien changer.
Le correctif
Les trois transports passent par un nom temporaire puis un renommage —
jamais par une écriture sur le fichier en place :
localinstallsur la destinationinstallsur.neuf, puismv -fsshinstallsur la destinationscpsur.neuf, puismv -fpvepct pushsur la destinationpct pushsur.neuf, puismv -fSeul
pveétait fautif en pratique (pct pushécrit directement) ;localetsshs'en remettaient àinstall, qui supprime avant de créer. Autant ne pass'en remettre à un détail d'implémentation : le renommage marche pour les trois,
et il est maintenant explicite et commenté sur place.
Le retour arrière renomme lui aussi, pour la même raison.
Vérifications
pverejoué sur le 108 avec le service enmarche, avec le code d'avant →
Text file busy, code de sortie 1.santé « bonne », code de sortie 0.
le bac. Un script ne suffirait pas : le noyau ne le protège pas de l'écriture.
Il ne couvre que le transport
local—pvene se prouve que sur un vraiconteneur, ce qui a été fait ci-dessus.
shellcheck -S warningmuet.À noter
Ce correctif a été trouvé en faisant la première pose du 108 (elle est faite :
mirror-status.servicearrêté,pcmirror-serveur.serviceen place et sain) puisen laissant la CI livrer par-dessus. C'est la livraison n°64 qui a posé la
première version, et la n°62 qui a révélé ce défaut.
fusion-auto: pas de fusion, la CI est rouge (Crate pcmirror). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.