Files
khadhroony-solana-project/deltas/0.3.14/pre.010-fix.001.md

3.6 KiB

Delta 0.3.14-pre.010-fix.001 — queue de fairness explicitement bornée

Base requise

0.3.14-pre.010
workspace.package.version = 0.3.14-pre.10
deltas/0.3.14/pre.010.md présent

Objectif

Corriger strictement le canari historique pre.009 en échec après pre.010, sans modifier l'algorithme de fairness nominal / repair.

Défaut observé

Le gate opérateur de 0.3.14-pre.010 valide les audits, cargo check, Clippy et les 147 unit tests, puis échoue sur un seul canari :

v0_3_13_pre_009_duplicate_storm_disagreement_and_starvation_guards_are_explicit
  pre.009 introduced forbidden unbounded/provider-preference behavior: VecDeque::new()

Cause

pre.010 a introduit la queue privée de waiters de fairness avec :

VecDeque::new()

La queue était déjà bornée fonctionnellement par :

gate.max_waiters == 0 || state.waiters.len() >= gate.max_waiters

mais le canari historique protège également l'absence de construction textuellement non bornée.

Correction

La construction devient explicitement dimensionnée avec la borne existante :

VecDeque::with_capacity(max_waiters)

La garde state.waiters.len() >= gate.max_waiters reste inchangée et demeure l'autorité qui interdit toute croissance au-delà de la borne.

Aucune capacité supplémentaire n'est réservée fonctionnellement, aucun waiter n'est admis en plus et l'alternance Nominal / Repair est inchangée.

Fichiers ajoutés

deltas/0.3.14/pre.010-fix.001.md

Fichiers modifiés

Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs

Fichiers supprimés

aucun

Version Cargo

Le correctif modifie du code Rust production ; conformément aux règles de versioning :

header Cargo.toml : 582 -> 583
workspace.package.version : 0.3.14-pre.10 -> 0.3.14-pre.10.fix.1

Version de fichier :

src/runtime_resources.rs : 39 -> 40

Frontières préservées

aucune seconde queue d'admission ou de persistence
aucun second registre d'hydration
aucune nouvelle semaphore
aucune capacité repair réservée
burst repair = 1 inchangé
fanout bloc repair <= 4 inchangé
fenêtre discovery <= 512 inchangée
aucun changement de TargetCoverage ou continuity ledger
aucun changement de health policy
aucun respawn Worker
aucun changement Transport
aucun Job Backfill
aucun backend Store physique
aucune croissance de surface publique

Validations exécutées

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
vérification ciblée de l'absence de VecDeque::new() dans le code Worker contrôlé par le canari
contrôle du diff exact
contrôle d'inventaire ZIP
unzip -t
réapplication du delta sur la base pre.010 et comparaison byte-à-byte

Validations non exécutées

Le toolchain Rust/Cargo n'est pas disponible dans le sandbox de préparation. Le gate opérateur reste requis :

cargo fmt --all
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features

Décisions prises

rendre la borne existante explicite à la construction plutôt que relâcher le canari
ne pas ajouter de #[allow(...)]
ne pas modifier la fairness, les quotas ni les pipelines existants

Questions ouvertes

aucune pour ce correctif