From 0a2ad50b5ea1304f9651fb1b9bbea2e62b382eed Mon Sep 17 00:00:00 2001 From: grumbach Date: Tue, 21 Apr 2026 15:17:10 +0900 Subject: [PATCH] fix(tests): bump chunk-op timeout to 90s for macOS CI runners `data_types::chunk::tests::test_chunk_store_on_remote_node` has been flaking on `Test (macos-latest)` with: Storage("Timeout waiting for remote store response after 30s") The test transfers a 4 MiB chunk over QUIC on loopback inside a 5-node testnet, with the 30 s budget covering QUIC+PQC handshake, payload transfer, and storage confirmation. Linux runners fit comfortably; macOS runners (nested-virt, roughly half the CPU throughput of the Linux pool) saturate under the concurrent handshake burst and blow through 30 s on bad days. Mirrors the ant-client#50 root cause. 90 s is conservative - happy-path loopback transfers complete in under a second, so the larger budget only shows up on flakes. Test-only; no production code path reads DEFAULT_CHUNK_OPERATION_TIMEOUT_SECS. Verified locally: test completes in 1.86 s with the new constant. --- tests/e2e/testnet.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/e2e/testnet.rs b/tests/e2e/testnet.rs index c77f9326..40ba7473 100644 --- a/tests/e2e/testnet.rs +++ b/tests/e2e/testnet.rs @@ -90,7 +90,17 @@ const MINIMAL_STABILIZATION_TIMEOUT_SECS: u64 = 30; const SMALL_STABILIZATION_TIMEOUT_SECS: u64 = 60; /// Default timeout for chunk operations (seconds). -const DEFAULT_CHUNK_OPERATION_TIMEOUT_SECS: u64 = 30; +/// +/// Covers the full round-trip: QUIC handshake, up to a 4 MiB payload +/// transfer, and storage confirmation. 30 s was enough on Linux CI but +/// flaked on `macos-latest` runners (nested-virt, roughly half the CPU +/// throughput of the Linux pool) when the 5-node testnet's concurrent +/// QUIC+PQC handshake burst collided with the 4 MiB +/// `test_chunk_store_on_remote_node` fixture. 90 s is deliberately +/// conservative; the happy path completes in well under a second on +/// loopback, so the larger budget only shows up on flakes. Test-only — +/// no production code path reads this constant. +const DEFAULT_CHUNK_OPERATION_TIMEOUT_SECS: u64 = 90; /// Short node-level network timeout for E2E test harness. ///