[MongoDB] La reconnexion à MongoDB échoue lorsqu'elle retourne "successful"
Vu avec watcher
en Canopsis 3.23.0, mais ça doit probablement arriver avec tous les moteurs.
Cas d'usage :
- avoir un moteur Go qui effectue régulièrement une requête donnée sur une collection MongoDB donnée ;
- provoquer un plantage de la requête MongoDB, par exemple en supprimant un index en cours d'utilisation :
- ajouter un index (
db.collection.createIndex({"cle": 1})
) sur un des champs utilisés par cette requête, pour que la requête se mette à utiliser cet index ; - puis, supprimer cet index alors qu'une requête est en train de l'utiliser (
db.collection.dropIndex("nom_de_lindex_1")
)
- ajouter un index (
- constater que le moteur renvoie une erreur de ce type :
error running MongoDB command (0/5 retries): (*mgo.QueryError) Executor error during find command :: caused by :: errmsg: "query killed during yield: index 'v.resolved_1' dropped"
=>waiting 0s before retrying
=>reconnection successful
) - le moteur continue de dépiler, mais niveau MongoDB il semble ne plus rien faire ;
- si on redémarre totalement le moteur, la reconnexion MongoDB reprend pour de vrai.
Comportement attendu :
- la reconnexion automatique à MongoDB doit réellement être fonctionnelle.
Le problème se produit peut-être aussi avec d'autres services que MongoDB (RabbitMQ, Redis, InfluxDB…).