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.
Associated revisions
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.
History
#1 Updated by Daniel Dehennin almost 8 years ago
- % Done changed from 0 to 100
- Remaining (hours) changed from 1.0 to 0.5
Nouveau paquet 2.5.2-1
en eole-2.5-unstable
.
#2 Updated by Daniel Dehennin almost 8 years ago
- Assigned To set to Daniel Dehennin
#3 Updated by Scrum Master almost 8 years ago
- Status changed from Nouveau to Résolu
#4 Updated by Emmanuel GARETTE almost 8 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) changed from 0.5 to 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).