SIM : impossible de relancer une instance Simplicité dans l'état "Processing"

instancemanager
SIM : impossible de relancer une instance Simplicité dans l'état "Processing"
0
Tags: #<Tag:0x00007fcf12366ee0>

#1

Cette nuit, une instance Simplicité est partie à 100% de CPU. Aujourd’hui, des utilisateurs ont rapporté ne plus pouvoir se connecter à l’instance. L’équipe d’exploitation a alors arrêté l’instance via une commande “sim stop”, puis démarré via un “sim start”. Le process Tomcat ne s’est pas lancé (ps -aux = pas de process) mais le SIM indiquait l’instance dans l’état “processing”. Dès lors, il n’était plus possible de démarrer l’instance !

L’équipe d’exploitation a alors édité l’état de l’instance dans le fichier /var/simplicite/data/apps.db pour la passer de “processing” à “stopped”, ce qui a permis de relancer l’instance.

Questions:

  • en l’état actuel des choses, la procédure suivie pour relancer l’instance est-elle la bonne?
  • est-il possible de faire évoluer le SIM afin d’éviter la désynchronisation entre l’état réel d’une instance Simplicité et l’état connu par le SIM, ou à défaut de forcer le redémarrage d’une instance restée bloquée dans l’état “processing”?

(David AZOULAY) #2

La procédure est bien la bonne

Le fait que l’instance reste en état “processing” est volontaire, c’est pour bloquer toute autre opération en attendant l’analyse précise du pb rencontrée par l’instance (et le cas échéant la restauration via ses dernières sauvegardes sans risquer que celles ci soient écrasées par d’autres opérations)

Mais effectivement la manière de sortir de cet état “processing” n’est pas idéale, on verra si on peut ajouter un mode “force” sur le sim start/stop qui ignore cet état (ou une action ad hoc)

Mais dans tous les cas cela restera une opération manuelle explicite à ne faire qu’une fois qu’on a investigué, compris et corrigé le pb rencontré.

PS: j’ai requalifié le post en “Support”


(David AZOULAY) #3

La “bonne” manière de changer le statut au niveau de la base SQLite du SIM c’est:

sql "update instances set status = 'started(ou stopped)' where name = 'le nom de l'instance'"

sql est l’alias suivant:

alias sql='sqlite3 -header -column /var/simplicite/data/apps.db'