From a8d096b72c0af4cf776585088f28519c975d422c Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Tue, 14 Jan 2025 12:18:02 +0100 Subject: [PATCH] Revert "WIP experiment: avoid upgrading" This reverts commit f6eb6fff9f67cf6303077dba023edd59b8f6e9e6. --- pageserver/src/tenant/timeline/handle.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pageserver/src/tenant/timeline/handle.rs b/pageserver/src/tenant/timeline/handle.rs index f3ccb5ad9f..fedc64c307 100644 --- a/pageserver/src/tenant/timeline/handle.rs +++ b/pageserver/src/tenant/timeline/handle.rs @@ -292,10 +292,17 @@ impl Cache { ) -> RoutingResult { loop { // terminates because when every iteration we remove an element from the map - let Some((first_key, WeakHandle { timeline, inner })) = self.map.iter().next() else { + let Some((first_key, first_handle)) = self.map.iter().next() else { return RoutingResult::NeedConsultTenantManager; }; - let first_handle = timeline; + let Ok(first_handle) = first_handle.upgrade().await else { + // TODO: dedup with get_impl() + trace!("handle cache stale"); + let first_key_owned = *first_key; + self.map.remove(&first_key_owned).unwrap(); + continue; + }; + let first_handle_shard_identity = first_handle.get_shard_identity(); let make_shard_index = |shard_num: ShardNumber| ShardIndex { shard_number: shard_num,