Project

General

Profile

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

Added by Daniel Dehennin over 5 years ago. Updated over 5 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
11/13/2015
Due date:
% Done:

100%

Estimated time:
1.00 h
Spent time:
Remaining (hours):
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.

Associated revisions

Revision 7ae53ea0 (diff)
Added by Daniel Dehennin over 5 years ago

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

Revision cfcf3072 (diff)
Added by Daniel Dehennin over 5 years ago

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

History

#1 Updated by Daniel Dehennin over 5 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 over 5 years ago

  • Assigned To set to Daniel Dehennin

#3 Updated by Scrum Master over 5 years ago

  • Status changed from Nouveau to Résolu

#4 Updated by Emmanuel GARETTE over 5 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).

Also available in: Atom PDF