Projet

Général

Profil

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

Ajouté par Daniel Dehennin il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
13/11/2015
Echéance:
% réalisé:

100%

Temps estimé:
1.00 h
Temps passé:
Restant à faire (heures):
0.0

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

Révision 7ae53ea0 (diff)
Ajouté par Daniel Dehennin il y a plus de 8 ans

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

Révision cfcf3072 (diff)
Ajouté par Daniel Dehennin il y a plus de 8 ans

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.

Ref: #14006
Ref: #14089

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).

Formats disponibles : Atom PDF