v0.3.15-pre.009-fix.002

This commit is contained in:
2026-09-14 15:19:55 +02:00
parent d7c2931c10
commit 8ae4d0effd
9 changed files with 277 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md -->
<!-- version: 15 -->
<!-- version: 16 -->
# Validation v0.3.15 — Raw Transaction Ingest Desk
@@ -535,3 +535,59 @@ Aucun de ces gates Cargo nest déclaré PASS. Ils restent dans le gate opéra
### `pre.009-fix.001` — shutdown Yellowstone et diagnostic de source
Le gate live `pre.009` a confirmé le multi-route et le chemin Yellowstone Block -> `getBlock`, mais un Stop Yellowstone pouvait entrer en collision avec la deadline de fermeture gRPC de 5 s. Le défaut Worker de `shutdown_drain_timeout` passe à 10 s ; un timeout de `session.close()` après Stop déjà demandé est accepté comme fermeture coopérative uniquement pour `onchain_transport.timeout`, les autres fautes restant terminales. Les sources terminales tracent désormais uniquement leur famille logique et les codes d'erreur sûrs, afin de qualifier séparément le `Faulted` encore observé sur `http-block-polling` Mainnet sans le masquer.
### `pre.009-fix.002` — résultat du gate opérateur `fix.001`
Le gate opérateur fourni pour `0.3.15-pre.009-fix.001` confirme les points suivants :
```text
cargo fmt --all / --check exécutés par l'opérateur
audit Rust workspace PASS
audit Markdown PASS (318 tables / 209 fichiers)
cargo check --workspace PASS
Clippy workspace strict -D warnings PASS
tests Raw Transaction Ingest Desk PASS
tests Worker FAIL : 156 PASS / 1 FAIL
tests workspace FAIL : canari logging en plus du test Worker
cargo tauri dev lancé et application opérationnelle
```
Les deux échecs statiques sont déterministes :
```text
settings::pre_003_defaults_are_exact_and_preserve_typed_identity
settings.shutdown_drain_timeout() = 10 s
assertion restée à 5 s
workspace_logging::behavioral_crates_own_explicit_tracing_targets
target littéral ajouté dans runtime_resources.rs
règle workspace : cible possédée par src/constants.rs
```
Le live Mainnet ne valide pas encore le shutdown de `fix.001` :
```text
yellowstone-hydrated
acquisition getBlock productive
Stop demandé
~5 s plus tard : runtime_invalid, sans transport_domain/code
terminal : Faulted
http-block-polling
getSlot/getBlocks/getBlock productifs pendant ~48 s
Stop demandé
runtime_invalid quasi immédiat, sans transport_domain/code
terminal : Faulted
standard-logs-hydrated
fault avant Stop : source_failed / onchain_transport.timeout
le log Transport montre un cooldown rate-limit du RPC public
standard-block-direct
fault avant Stop : source_failed / onchain_transport.rpc_application_error
helius-transaction-hydrated
fault avant Stop : source_failed / onchain_transport.rpc_application_error
```
Conclusion : le passage du drain par défaut à 10 s reste conservé mais n'est pas une preuve de correction Yellowstone. `fix.002` répare les deux gates statiques et expose dans la trace source le contexte interne statique `condition` des erreurs `runtime_invalid`. Le prochain live doit fournir cette `condition` exacte pour Yellowstone et HTTP polling ; aucune conversion générique `runtime_invalid -> Stopped` n'est autorisée.