0xMiden / 0xMiden/note-transport-service

Health service reports SERVING unconditionally regardless of DB state

Ouverte
#127 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
bug production-readiness
Langage dominant
Rust
Étoiles
3
Forks
10
Merge moyen
2 h 23 min
PR mergées (30 j)
4

Description

Severity: high.

### Summary

`health_reporter.set_serving::<…>()` is called once at startup (`crates/node/src/node/grpc/mod.rs:100-101`) and the reporter is then dropped and never consulted again. There is no readiness probe and no NOT_SERVING transition.

### Impact

A wedged/corrupt DB, a full disk, or an exhausted connection pool leaves the pod reporting healthy; load balancers keep routing traffic into a black hole. (The health service existing at all is good — this is about keeping it truthful.)

### Recommendation

Keep the reporter, run a periodic readiness probe (`SELECT 1` via the pool) that toggles serving status, and set NOT_SERVING during shutdown (ties into the graceful-shutdown issue).

---
Part of #114.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Le rapporteur d'état est initialisé dans crates/node/src/node/grpc/mod.rs lignes 100-101. Étudiez le module health_reporter pour comprendre son API. Implémentez une sonde de préparation périodique qui exécute une requête 'SELECT 1' via le pool de connexions à la base de données. Intégrez cette sonde pour basculer l'état de service et assurez-vous que NOT_SERVING est défini lors de l'arrêt gracieux. Les tests impliqueront de simuler des pannes de base de données.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Domaine
backend, observability
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Calme
Clarté
Clairement spécifiée
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.