diff --git a/src/transport/middle_proxy/pool_writer.rs b/src/transport/middle_proxy/pool_writer.rs index 0c31ecb..fae68b9 100644 --- a/src/transport/middle_proxy/pool_writer.rs +++ b/src/transport/middle_proxy/pool_writer.rs @@ -171,6 +171,9 @@ async fn rpc_proxy_req_signal_loop( rpc_proxy_req_every_secs: u64, ) { if rpc_proxy_req_every_secs == 0 { + // Disabled service signal loop must stay parked until writer cancellation. + // Returning immediately here would complete `select!` and tear down writer lifecycle. + cancel_signal.cancelled().await; return; } diff --git a/src/transport/middle_proxy/tests/pool_writer_security_tests.rs b/src/transport/middle_proxy/tests/pool_writer_security_tests.rs index d6ab8d6..e287624 100644 --- a/src/transport/middle_proxy/tests/pool_writer_security_tests.rs +++ b/src/transport/middle_proxy/tests/pool_writer_security_tests.rs @@ -35,7 +35,7 @@ async fn make_pool() -> Arc { NetworkDecision::default(), None, Arc::new(SecureRandom::new()), - Arc::new(Stats::default()), + Arc::new(Stats::new()), general.me_keepalive_enabled, general.me_keepalive_interval_secs, general.me_keepalive_jitter_secs,