From 7c37fad092135268b8028c1d6029dd5c8651ab51 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 5 Feb 2024 11:11:59 +0200 Subject: [PATCH] nag if shutdown is taking longer than 1s --- pageserver/src/tenant/remote_timeline_client.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pageserver/src/tenant/remote_timeline_client.rs b/pageserver/src/tenant/remote_timeline_client.rs index 72a66a3f04..6fb56143a2 100644 --- a/pageserver/src/tenant/remote_timeline_client.rs +++ b/pageserver/src/tenant/remote_timeline_client.rs @@ -971,16 +971,19 @@ impl RemoteTimelineClient { upload_queue.shutdown_ready.clone() }; - let res = sem.acquire().await; + let mut closed = std::pin::pin!(sem.acquire()); + + let res = tokio::select! { + res = &mut closed => res, + _ = tokio::time::sleep(std::time::Duration::from_secs(1)) => { + tracing::warn!("still waiting for UploadQueueInitialized to shutdown"); + closed.await + } + }; scopeguard::ScopeGuard::into_inner(sg); - match res { - Ok(_permit) => unreachable!("shutdown_ready should not have been added permits"), - Err(_closed) => { - // expected - } - } + res.expect_err("shutdown_ready should not have been added permits, only closed"); self.stop() }