0.3.15-pre.015-fix.001
This commit is contained in:
99
deltas/0.3.15/pre.015-fix.001.md
Normal file
99
deltas/0.3.15/pre.015-fix.001.md
Normal file
@@ -0,0 +1,99 @@
|
||||
<!-- file: deltas/0.3.15/pre.015-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta v0.3.15-pre.015-fix.001 — Stop Yellowstone post-half-close
|
||||
|
||||
## Base
|
||||
|
||||
```text
|
||||
ksp-general-0.3.15-pre.015.zip
|
||||
SHA-256: 3ab4b976ae612286b577aa003c10e6b9627be040a0a0fc51b2c9e45d6616893e
|
||||
```
|
||||
|
||||
Le gate `pre.015` confirme la correction de la saturation locale : les audits, `cargo check`, Clippy, les suites ciblées et le workspace passent, le canari Transport de backpressure soutenue passe, et la trace live fournie ne contient plus de `grpc_backpressure_overflow` Yellowstone pendant le run. Le défaut restant appartient au même contrat `pre.015`, car le gate exige explicitement `Stop ciblé -> Stopped`.
|
||||
|
||||
## Défaut observé
|
||||
|
||||
```text
|
||||
20:57:33.659 Stop Yellowstone demandé
|
||||
20:57:33.778 PublicNode renvoie grpc Status Unknown pendant graceful shutdown
|
||||
20:57:33.780 Worker classe la source source_failed / grpc_status
|
||||
20:57:34.918 route terminale Faulted / Unhealthy
|
||||
```
|
||||
|
||||
La fonction `finish_client_half_close()` est exécutée uniquement après déclenchement du shutdown local. Elle classait pourtant tout `Status` reçu après le half-close comme une nouvelle faute distante, ce qui remplaçait à tort la terminaison coopérative déjà engagée.
|
||||
|
||||
## Correction
|
||||
|
||||
Pendant `finish_client_half_close()` :
|
||||
|
||||
```text
|
||||
Status reçu après shutdown local explicite
|
||||
-> log safe du code gRPC
|
||||
-> state = Closed
|
||||
-> terminal_error_code = None
|
||||
-> session.close() = Ok(())
|
||||
```
|
||||
|
||||
La branche active reste inchangée : un `Status` reçu par `run_subscribe_actor()` avant shutdown continue d'entrer dans la politique de reconnect bornée et reste terminal si cette politique ne peut pas récupérer la session.
|
||||
|
||||
Le timeout de fermeture hostile reste également inchangé et borné par `close_timeout`.
|
||||
|
||||
## Canaris
|
||||
|
||||
```text
|
||||
yellowstone_explicit_close_accepts_remote_status_after_local_half_close
|
||||
yellowstone_stream_remote_status_is_safe_and_terminal
|
||||
yellowstone_hostile_server_shutdown_is_bounded_by_close_timeout
|
||||
release_v0_3_15_pre_015_fix_001_local_close_status_is_closed_without_weakening_active_status_failure
|
||||
```
|
||||
|
||||
## Frontières
|
||||
|
||||
Aucun changement de Worker, Store, Config, Desk, schema, RAW, reconnect budget, capacités de queue ou API publique. Aucun status reçu en fonctionnement normal n'est reclassé en succès.
|
||||
|
||||
## Version
|
||||
|
||||
```text
|
||||
workspace.package.version : 0.3.15-pre.15.fix.1
|
||||
root Cargo header counter : 633
|
||||
```
|
||||
|
||||
## Validation attendue
|
||||
|
||||
```text
|
||||
cargo fmt --all
|
||||
cargo fmt --all -- --check
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.15
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test -p ksp-onchain-transport-lib --all-targets --all-features
|
||||
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
|
||||
cargo test -p ksp-app-raw-transaction-ingest-desk --all-targets --all-features
|
||||
cargo test --workspace --all-targets --all-features
|
||||
(cd crates/ksp-app-raw-transaction-ingest-desk && cargo tauri dev)
|
||||
```
|
||||
|
||||
Live : Yellowstone Mainnet doit rester sain pendant le run puis terminer `Stopped` après Stop ciblé, y compris si le provider renvoie `Unknown` après le half-close. HTTP Block Polling doit conserver son comportement `Stopped/Healthy` indépendant.
|
||||
|
||||
## Inventaire exact du delta
|
||||
|
||||
Ajout :
|
||||
|
||||
```text
|
||||
deltas/0.3.15/pre.015-fix.001.md
|
||||
```
|
||||
|
||||
Modifications :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-onchain-transport-lib/README.md
|
||||
crates/ksp-onchain-transport-lib/src/grpc_stream.rs
|
||||
crates/ksp-onchain-transport-lib/tests/release_completeness.rs
|
||||
crates/ksp-onchain-transport-lib/unit_tests/grpc_stream.rs
|
||||
docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md
|
||||
```
|
||||
|
||||
Suppressions : aucune.
|
||||
Reference in New Issue
Block a user