From 75c3c43b2ef03ea99ccbfac69926f6c9e4950463 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Wed, 24 May 2023 11:36:07 +0200 Subject: [PATCH 1/2] don't unwrap() the `activate()` result in spawn_load / spawn_attach --- pageserver/src/tenant.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pageserver/src/tenant.rs b/pageserver/src/tenant.rs index af59ad0044..d9a05203a9 100644 --- a/pageserver/src/tenant.rs +++ b/pageserver/src/tenant.rs @@ -614,10 +614,13 @@ impl Tenant { "attach tenant", false, async move { - match tenant_clone.attach(&ctx).await { - Ok(_) => { - tenant_clone.activate(&ctx).unwrap(); // WIP - } + let doit = async { + tenant_clone.attach(&ctx).await?; + tenant_clone.activate(&ctx)?; + anyhow::Ok(()) + }; + match doit.await { + Ok(_) => {} Err(e) => { tenant_clone.set_broken(e.to_string()); error!("error attaching tenant: {:?}", e); @@ -881,10 +884,13 @@ impl Tenant { "initial tenant load", false, async move { - match tenant_clone.load(&ctx).await { - Ok(()) => { - tenant_clone.activate(&ctx).unwrap(); // WIP - } + let doit = async { + tenant_clone.load(&ctx).await?; + tenant_clone.activate(&ctx)?; + anyhow::Ok(()) + }; + match doit.await { + Ok(()) => {} Err(err) => { tenant_clone.set_broken(err.to_string()); error!("could not load tenant {tenant_id}: {err:?}"); From 07da786ed361a354754869dd312a7bf30a8de341 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Wed, 24 May 2023 11:56:26 +0200 Subject: [PATCH 2/2] apply joonas's suggestion to use parent: None + follows_from --- pageserver/src/tenant.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pageserver/src/tenant.rs b/pageserver/src/tenant.rs index d9a05203a9..ce14f14aa9 100644 --- a/pageserver/src/tenant.rs +++ b/pageserver/src/tenant.rs @@ -628,7 +628,11 @@ impl Tenant { } Ok(()) } - .instrument(tracing::info_span!("attach", tenant_id=%tenant_id)), + .instrument({ + let span = tracing::info_span!(parent: None, "attach", tenant_id=%tenant_id); + span.follows_from(Span::current()); + span + }), ); Ok(tenant) } @@ -899,7 +903,11 @@ impl Tenant { info!("initial load for tenant {tenant_id} finished!"); Ok(()) } - .instrument(info_span!("load", tenant_id=%tenant_id)), + .instrument({ + let span = tracing::info_span!(parent: None, "load", tenant_id=%tenant_id); + span.follows_from(Span::current()); + span + }), ); info!("spawned load into background");