0xMiden / 0xMiden/note-transport-service

Server errors exit with code 0 — restart-on-failure never triggers

Ouverte Adaptée aux débutants
#126 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 (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

Recevez les nouvelles issues par e-mail

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