52 lines
2.6 KiB
Markdown
52 lines
2.6 KiB
Markdown
<!-- file: deltas/0.3.15/pre.008-fix.003.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.15-pre.008-fix.003`
|
|
|
|
## Objet
|
|
|
|
Fermer le gate Clippy de `pre.008-fix.002` et corriger la resynchronisation Stop lorsqu'un Worker atteint spontanément un état terminal avant l'action utilisateur, sans modifier les capabilities Config ni le périmètre mono-route.
|
|
|
|
## Défauts observés
|
|
|
|
Le gate opérateur confirme `cargo check --workspace` et les suites de tests, mais Clippy strict rejette encore un `?` dans la boucle bornée de nettoyage Stop au titre de `clippy::question_mark_used`.
|
|
|
|
Le parcours Tauri live montre également qu'une route peut atteindre spontanément `Faulted` et fermer son Store avant que le frontend ne clique Stop. Le slot backend est alors correctement libéré, mais le frontend possède encore son dernier accusé `Starting`; un Stop tardif retourne donc `route_runtime_not_active` au lieu de lui permettre de récupérer l'état terminal déjà observé.
|
|
|
|
## Correction
|
|
|
|
- le `?` interdit est remplacé par un `match` explicite avec `return` ;
|
|
- le runtime mono-route conserve uniquement le dernier `RawIngestRouteRuntimeDto` terminal sûr après la terminaison Worker et la fermeture Store ;
|
|
- un Stop tardif sur un slot déjà `Idle` retourne ce dernier terminal de manière idempotente ;
|
|
- la réservation d'un nouveau Start efface immédiatement ce terminal afin de ne jamais mélanger deux exécutions ;
|
|
- le cache terminal ne contient aucun handle Worker, aucun `Store`, aucun endpoint, aucun secret et aucune ressource Transport.
|
|
|
|
## Caractérisation live inchangée
|
|
|
|
Les terminaisons `Faulted` observées ne sont pas masquées par ce fix :
|
|
|
|
- Yellowstone Mainnet a rencontré un overflow de queue Transport sous charge, concomitant à de l'hydration HTTP et à une mise en cooldown rate-limit ;
|
|
- `standard-block-direct` a atteint `Faulted` après la tentative `blockSubscribe`, méthode explicitement instable.
|
|
|
|
Ces événements restent des résultats Worker/Transport réels. Le fix ne fabrique aucune capability, ne transforme pas `Configured` en garantie live et ne modifie aucune politique provider.
|
|
|
|
## Périmètre inchangé
|
|
|
|
- un seul runtime route à la fois ;
|
|
- même revalidation Start issue de `pre.007` ;
|
|
- même ouverture, health et fermeture Store via `ksp-store-lib` ;
|
|
- même lancement `RawTransactionIngestWorker::start_with_runtime_resources` ;
|
|
- aucun partage Store multi-worker de `pre.009` ;
|
|
- aucun monitoring continu de `pre.010`.
|
|
|
|
## Version
|
|
|
|
```text
|
|
header racine : 611 -> 612
|
|
workspace : 0.3.15-pre.8.fix.2 -> 0.3.15-pre.8.fix.3
|
|
```
|
|
|
|
## Gate opérateur
|
|
|
|
Le gate complet de `pre.008` doit être rejoué après application de ce fix.
|