Tâche #14006
Scénario #6022: La commande manage_station.py ne rend pas la main en cas de timeout
Arrêter le reactor en cas de timeout
Description
En cas de timeout de commande, le réacteur n’est pas arrêté et le script manage_station.py
ne rend jamais la main.
Révisions associées
Arrêter le reactor en cas de timeout
En cas de timeout de commande, le réacteur n’est pas arrêté et le script
manage_station.py ne rend jamais la main.
- backend/cliscribe.py (Cliscribe.__init__): Ajout de l’attribut
« exception » pour sauvegarder les exceptions levées.
(Cliscribe.err): Sauvegarde de l’exception.
(Cliscribe.setmytimeout): Ne pas vérifier l’état des appels de callback.
(Cliscribe.timeout): Sauvegarde de l’exception et crash du reactor.
- backend/manage_stations.py (manage_station.shutdown_sta): Gestion des
« Failure » twisted.
Ref: #14006
manage_station.py: arrêter le reactor côté client
Un certain nombre de problèmes sont présents dans la gestion des actions
de l’object « Cliscribe » :
- Cet objet est utilisé côté serveur, il doit donc pouvoir fonctionner
tout le temps
- L’initialisation de l’objet créé un minuteur de 15 secondes qui n’est
jamais réinitialisé ni désactivé lorsqu’une commande arrive à
terme. Il est donc toujours exécuté dans le cas d’utilisation côté
serveur.
- Chaque action est un « callback » au lieu d’être un « Deferred »,
l’exécution des « callback » est synchrone et peut donc bloquer
complètement sur le réacteur.
This partially reverts commit 7ae53ea022e23b57a1bbf5a68493381088b65444.
- backend/cliscribe.py (Cliscribe.__init__): Sauvegarde du timeout pour
utilisation par les clients.
Suppression de l’attribut « exception »
(Cliscribe.err): Suppression de la sauvegarde de l’exception.
(Cliscribe.timeout): Remise en place de l’ancien code.
- backend/manage_stations.py (manage_station.shutdown_sta): Ajout d’un
« callLater » pour arrêter le réacteur en cas de timeout.
Historique
#1 Mis à jour par Daniel Dehennin il y a plus de 8 ans
- % réalisé changé de 0 à 100
- Restant à faire (heures) changé de 1.0 à 0.5
Nouveau paquet 2.5.2-1
en eole-2.5-unstable
.
#2 Mis à jour par Daniel Dehennin il y a plus de 8 ans
- Assigné à mis à Daniel Dehennin
#3 Mis à jour par Scrum Master il y a plus de 8 ans
- Statut changé de Nouveau à Résolu
#4 Mis à jour par Emmanuel GARETTE il y a plus de 8 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) changé de 0.5 à 0.0
Il n'y a plus de plantage EAD (même si le message d'erreur n'est pas terrible et que controle-vnc ne voit plus la station).