0xMiden / 0xMiden/note-transport-service
Server errors exit with code 0 — restart-on-failure never triggers
- Langage dominant
- Rust
- Étoiles
- 3
- Forks
- 10
- Merge moyen
- 2 h 23 min
- PR mergées (30 j)
- 4
Description
Severity: high (bug).
### Summary
`entrypoint()` swallows the server error: `if let Err(e) = self.grpc.serve().await { error!("Server error: {e}"); }` (`crates/node/src/node/mod.rs:59-61`), and `main` then returns `Ok(())` (`bin/node/src/main.rs:83`).
### Impact
A bind failure, transport error, or any fatal server error produces a clean `exit(0)`. Docker `restart: on-failure` and systemd `Restart=on-failure` treat this as success and leave the service down.
### Recommendation
Propagate the error from `entrypoint()` to `main` so the process exits non-zero on fatal error.
---
Part of #114.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Le problème pointe vers `crates/node/src/node/mod.rs:59-61` où l'erreur du serveur est journalisée mais non propagée, et vers `bin/node/src/main.rs:83` où `main` retourne `Ok(())`. Commencez par examiner le type de retour et la gestion d'erreurs de la fonction `entrypoint()`. Modifiez-la pour qu'elle retourne l'erreur à `main`, en veillant à ce que `main` se termine avec un code non nul. Exécutez le binaire du nœud pour vérifier qu'il se termine avec un code d'erreur en cas d'échec simulé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- Calme
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 75/100