From 6edf8d7d0de6aa4a54d086b67570f7b446ced3e9 Mon Sep 17 00:00:00 2001 From: Ian Clarke Date: Sun, 16 Nov 2025 19:57:50 -0600 Subject: [PATCH 1/3] test: log connectivity snapshot and recent events on timeout --- crates/core/tests/connectivity.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/core/tests/connectivity.rs b/crates/core/tests/connectivity.rs index 5afd89fe1..bbd99a71f 100644 --- a/crates/core/tests/connectivity.rs +++ b/crates/core/tests/connectivity.rs @@ -394,6 +394,22 @@ async fn test_three_node_network_connectivity(ctx: &mut TestContext) -> TestResu } if !mesh_established { + tracing::error!( + gateway_peers = %last_snapshot.0, + peer1_peers = %last_snapshot.1, + peer2_peers = %last_snapshot.2, + "Connectivity check failed; dumping last snapshot" + ); + + if let Ok(aggregator) = ctx.aggregate_events().await { + if let Ok(events) = aggregator.get_all_events().await { + tracing::error!(total_events = events.len(), "Aggregated events at timeout"); + for event in events.iter().rev().take(10).rev() { + tracing::error!(?event.kind, peer=%event.peer_id, ts=%event.datetime, "Recent event"); + } + } + } + bail!( "Failed to establish minimum connectivity after {} attempts. Gateway peers: {}; peer1 peers: {}; peer2 peers: {}", MAX_RETRIES, From 5819193e9ef85f4f036c5bacab498f8c99b2f683 Mon Sep 17 00:00:00 2001 From: Ian Clarke Date: Mon, 17 Nov 2025 08:43:10 -0600 Subject: [PATCH 2/3] test: add diagnostics to three-hop put --- crates/core/tests/operations.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/crates/core/tests/operations.rs b/crates/core/tests/operations.rs index dfea0adff..2b4f542ed 100644 --- a/crates/core/tests/operations.rs +++ b/crates/core/tests/operations.rs @@ -28,6 +28,27 @@ use tokio::select; use tokio::time::timeout; use tokio_tungstenite::connect_async; +async fn log_recent_events(ctx: &TestContext, label: &str) { + if let Ok(aggregator) = ctx.aggregate_events().await { + if let Ok(events) = aggregator.get_all_events().await { + tracing::error!( + label, + total_events = events.len(), + "Aggregated events at failure" + ); + for event in events.iter().rev().take(10).rev() { + tracing::error!( + label, + ?event.kind, + peer = %event.peer_id, + ts = %event.datetime, + "Recent event" + ); + } + } + } +} + static RNG: LazyLock> = LazyLock::new(|| { Mutex::new(rand::rngs::StdRng::from_seed( *b"0102030405060708090a0b0c0d0e0f10", @@ -1950,12 +1971,15 @@ async fn test_put_contract_three_hop_returns_response(ctx: &mut TestContext) -> assert_eq!(key, contract_key); } Ok(Ok(other)) => { + log_recent_events(ctx, "put-unexpected").await; bail!("Unexpected response while waiting for put: {:?}", other); } Ok(Err(e)) => { + log_recent_events(ctx, "put-error").await; bail!("Error receiving put response: {}", e); } Err(_) => { + log_recent_events(ctx, "put-timeout").await; bail!("Timeout waiting for put response after 120 seconds"); } } From efc56ef51019224ddc60fd4c5cfafd70fbb65f36 Mon Sep 17 00:00:00 2001 From: Ian Clarke Date: Mon, 17 Nov 2025 09:29:56 -0600 Subject: [PATCH 3/3] ci: trigger rerun