Tâche #28163
Scénario #28342: Traitement express MEN (24-26)
Zephir : si on demande une mise à jour et que zephir-stats se met à jour, la mise à jour s'arrête en plein milieu
100%
Description
J'ai demandé la mise à jour d'un serveur via les actions Zéphir.
Le serveur commence a se mettre à jour, via le service zstats :
root 22408 0.8 6.7 256232 68316 ? Ss 10:58 0:01 /usr/bin/python2 /usr/bin/twistd --nodaemon --no_save --pidfile /run/z_stats.pid zephiragents --tmp=data --data=stats --archive=/tmp --static=static --actions=actions root 27342 0.0 0.3 22576 3320 ? S 11:00 0:00 \_ sh -c /usr/share/zephir/scripts/zephir_client call &> /dev/null root 27343 0.0 0.3 22576 3324 ? S 11:00 0:00 \_ /bin/bash /usr/share/zephir/scripts/zephir_client call root 27344 1.2 2.8 93484 29032 ? S 11:00 0:00 \_ python /usr/share/zephir/scripts/zephir_client.py call uucp 28622 0.0 0.2 19636 2220 ? S 11:00 0:00 \_ /usr/sbin/uuxqt -s zephir uucp 28623 0.0 0.1 9920 1124 ? S 11:00 0:00 \_ /bin/bash /usr/share/zephir/scripts/zephir_client maj_auto uucp 28624 9.0 2.7 76208 27620 ? S 11:00 0:00 \_ python /usr/share/zephir/scripts/zephir_client.py maj_auto uucp 28653 0.0 0.1 9920 1232 ? S 11:00 0:00 \_ sh -c sudo /usr/share/zephir/scripts/maj_auto.zephir 2>&1 >> /var/log/zephir/last_action.log root 28654 0.0 0.3 66888 3736 ? S 11:00 0:00 \_ sudo /usr/share/zephir/scripts/maj_auto.zephir root 28656 11.0 3.5 141280 35404 ? S 11:00 0:00 \_ python /usr/share/zephir/scripts/maj_auto.zephir root 28686 16.0 4.5 176444 45704 ? S 11:00 0:00 \_ /usr/bin/python2 /usr/bin/Maj-Auto -W root 28750 0.0 0.5 46500 5652 ? R 11:00 0:00 \_ apt-get install -f
mais le service est stoppé au moment de l'installation de zephir-stats.
La mise à jour se retrouve alors dans un état incohérent.
Il ne faudrait pas que le paquet coupe la mise à jour durant la mise à jour.
Révisions associées
Update debian/rules
Ref: #28163
Update debian/rules
Ref: #28163
Remove old systemV init script link
Ref: #28163
Update debian/rules (like ferme-firewall in eole-server)
Ref: #28163
zephir-client : clean scripts in debian
Ref: #28163
Update debian/rules for EOLE>=2.7.2
Ref: #28163
Historique
#1 Mis à jour par Joël Cuissinat il y a presque 5 ans
root@eolebase:~# apt-get install --reinstall zephir-stats && service z_stats status | grep Active Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait 0 mis à jour, 0 nouvellement installés, 1 réinstallés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 0 o/22,3 ko dans les archives. Après cette opération, 0 o d'espace disque supplémentaires seront utilisés. (Lecture de la base de données... 125340 fichiers et répertoires déjà installés.) Préparation du dépaquetage de .../zephir-stats_2.6.2-8_all.deb ... Dépaquetage de zephir-stats (2.6.2-8) sur (2.6.2-8) ... Paramétrage de zephir-stats (2.6.2-8) ... Active: active (running) since lun. 2019-05-13 11:13:53 CEST; 289ms ago
#2 Mis à jour par Joël Cuissinat il y a presque 5 ans
- Tracker changé de Demande à Tâche
- Tâche parente mis à #28148
Proposition, ajouter ces lignes dans le fichier debian/rules :
override_dh_systemd_start: dh_systemd_start -p zephir-stats --no-start --no-restart-on-upgrade z_stats.service
#3 Mis à jour par Joël Cuissinat il y a presque 5 ans
- Tâche parente changé de #28148 à #28342
#4 Mis à jour par Benjamin Bohard il y a presque 5 ans
- Statut changé de Nouveau à En cours
#5 Mis à jour par Benjamin Bohard il y a presque 5 ans
- Description mis à jour (diff)
- Assigné à mis à Benjamin Bohard
#6 Mis à jour par Benjamin Bohard il y a presque 5 ans
L’installation d’un paquet avec le fichier rules modifié ne semble pas régler le problème.
Diverses tentatives de fork du processus de Maj-Auto sans succès. Reste la possibilité d’utiliser inconditionnellement un mécanisme comme cron, at, systemd-run, etc.
#7 Mis à jour par Benjamin Bohard il y a presque 5 ans
En passant par systemd-run, plus de problème d’interruption mais twisted se retrouve à un moment dans l’impossibilité d’écrire ses logs et le fichier majsuccess n’est pas créé. La mise-à-jour est déclarée échouée (elle s’est bien finalisée en fait).
juin 17 11:32:56 eolebase zephir[5780]: MAJ => ERR : l'appel à apt-get (-c /etc/apt/apt-eole.conf dist-upgrade) a retourné une erreur (code 100). Voir /var/log/apt/term.log E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe)) E: Erreur d'écriture - write (32: Relais brisé (pipe))
#8 Mis à jour par Benjamin Bohard il y a presque 5 ans
- Statut changé de En cours à Nouveau
#9 Mis à jour par Benjamin Bohard il y a presque 5 ans
- Assigné à
Benjamin Bohardsupprimé
#10 Mis à jour par Joël Cuissinat il y a presque 5 ans
La correction proposée est bonne mais malheureusement elle ne sera applicable que pour la mise à jour suivante car "l'ancien" paquet contient déjà le code suivant dans son prerm :
# dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. # Automatically added by dh_systemd_start/11.1.6ubuntu1 if [ -d /run/systemd/system ]; then deb-systemd-invoke stop 'z_stats.service' >/dev/null || true fi # End automatically added section
En ajoutant, l'option, une condition sur l'action remove est ajoutée :
# dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. # Automatically added by dh_systemd_start/11.1.6ubuntu1 if [ -d /run/systemd/system ] && [ "$1" = remove ]; then deb-systemd-invoke stop 'z_stats.service' >/dev/null || true fi # End automatically added section
#11 Mis à jour par Joël Cuissinat il y a presque 5 ans
- Statut changé de Nouveau à Résolu
#12 Mis à jour par Joël Cuissinat il y a presque 5 ans
- Assigné à mis à Joël Cuissinat
#13 Mis à jour par Joël Cuissinat il y a plus de 4 ans
- Statut changé de Résolu à Fermé
- % réalisé changé de 0 à 100
- Restant à faire (heures) mis à 0.0
Publié en 2.7.1 & 2.7.2