Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion zebra-network/src/zakura/testkit/blocksync_fuzz/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,20 @@ async fn fuzz_reliability_discounts_dropping_carrier() {
let mut fast = PeerSpec::fast(2, half);
fast.servable_high = half;

let mut scenario = Scenario::new(blocks, 0x57ea_00c0, retry_config(), vec![dropping, fast]);
// A dropped probe must not shed the only upper-half carrier: with the default
// one-probe budget, schedulings where the carrier's first request is dropped wedge
// it at `InitialBlockProbeRequestCap`, liveness then parks and disconnects it
// (`rejects=1`), and — since fuzz peers never reconnect — the sync stalls at the
// fast peer's ceiling. The probe-shed policy is covered by
// `fuzz_silent_peer_request_cap`; this test is about the reliability discount, so
// give the unproven carrier enough probe budget to survive its 30% drop rate under
// any scheduling.
let config = ZakuraBlockSyncConfig {
initial_block_probe_requests: 8,
..retry_config()
};

let mut scenario = Scenario::new(blocks, 0x57ea_00c0, config, vec![dropping, fast]);
scenario.deadline = Duration::from_secs(90);
let (_, report) =
run_checked("fuzz_reliability_discounts_dropping_carrier", scenario, 32).await;
Expand Down