diff --git a/pageserver/src/tenant/layer_cache.rs b/pageserver/src/tenant/layer_cache.rs index 49479fe836..85fcf701c5 100644 --- a/pageserver/src/tenant/layer_cache.rs +++ b/pageserver/src/tenant/layer_cache.rs @@ -39,17 +39,16 @@ pub struct LayerInUseRead(tokio::sync::OwnedRwLockReadGuard<()>); pub struct DeleteGuard(Arc>); impl LayerCache { - pub fn new(timeline: Weak) -> Self { - let timeline_arc = timeline.upgrade().unwrap(); + pub fn new(timeline: Weak, tenant_id: TenantId, timeline_id: TimelineId) -> Self { Self { layers_operation_lock: Arc::new(tokio::sync::RwLock::new(())), layers_removal_lock: Arc::new(tokio::sync::Mutex::new(())), mapping: Mutex::new(HashMap::new()), - timeline, - tenant_id: timeline_arc.tenant_id, - timeline_id: timeline_arc.timeline_id, - tenant_id_str: timeline_arc.tenant_id.to_string(), - timeline_id_str: timeline_arc.timeline_id.to_string(), + timeline: timeline, + tenant_id: tenant_id, + timeline_id: timeline_id, + tenant_id_str: tenant_id.to_string(), + timeline_id_str: timeline_id.to_string(), } } diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index ef4aa8d133..e023785723 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -1421,7 +1421,7 @@ impl Timeline { tenant_id, pg_version, layers: tokio::sync::RwLock::new((LayerMap::default(), LayerMapping::new())), - lcache: LayerCache::new(myself.clone()), + lcache: LayerCache::new(myself.clone(), tenant_id, timeline_id), wanted_image_layers: Mutex::new(None), walredo_mgr,