mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-24 08:30:37 +00:00
get_lsn_by_timestamp_handler: fix panic due to missing spans (debug-only)
2024-04-17T10:10:05.298062Z ERROR request{method=GET path=/v1/tenant/cebe21e8c0b2e7449eab58f0c196dd39/timeline/eb672319d49d517df248c7dc739a5e5b/get_lsn_by_timestamp request_id=c1fa90f5-a1b6-4395-afc3-b02d89228a4d}:get_or_maybe_download{layer=000000067F0000400200BB17590000000007-030000000000000000000000000000000002__00000064101DF219-000000641BD8F4F1}:panic{thre
ad=mgmt request worker location=pageserver/src/tenant/storage_layer/layer.rs:958:9}: missing extractors: [ConstExtractor { field_name: "tenant_id" }, ConstExtractor { field_name: "shard_id" }, ConstExtractor { field_name: "timeline_id" }]
Stack backtrace:
0: utils::logging::tracing_panic_hook
at /home/admin/neon/libs/utils/src/logging.rs:206:21
1: core::ops::function::Fn::call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:79:5
2: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/alloc/src/boxed.rs:2029:9
3: std::panicking::rust_panic_with_hook
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:785:13
4: std::panicking::begin_panic_handler::{{closure}}
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:659:13
5: std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/sys_common/backtrace.rs:171:18
6: rust_begin_unwind
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
7: core::panicking::panic_fmt
at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
8: pageserver::span::debug_assert_current_span_has_tenant_and_timeline_id
at /home/admin/neon/pageserver/src/span.rs:29:13
9: pageserver::tenant::storage_layer::layer::LayerInner::download_init_and_wait::{{closure}}
at /home/admin/neon/pageserver/src/tenant/storage_layer/layer.rs:958:9
10: pageserver::tenant::storage_layer::layer::LayerInner::get_or_maybe_download::{{closure}}::{{closure}}
at /home/admin/neon/pageserver/src/tenant/storage_layer/layer.rs:918:69
11: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
at /home/admin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/instrument.rs:272:9
12: pageserver::tenant::storage_layer::layer::LayerInner::get_or_maybe_download::{{closure}}
at /home/admin/neon/pageserver/src/tenant/storage_layer/layer.rs:923:10
13: pageserver::tenant::storage_layer::layer::Layer::get_value_reconstruct_data::{{closure}}
at /home/admin/neon/pageserver/src/tenant/storage_layer/layer.rs:291:67
14: pageserver::tenant::timeline::Timeline::get_reconstruct_data::{{closure}}
at /home/admin/neon/pageserver/src/tenant/timeline.rs:2900:22
15: pageserver::tenant::timeline::Timeline::get_impl::{{closure}}
at /home/admin/neon/pageserver/src/tenant/timeline.rs:736:14
16: pageserver::tenant::timeline::Timeline::get::{{closure}}
at /home/admin/neon/pageserver/src/tenant/timeline.rs:681:38
17: pageserver::pgdatadir_mapping::Version::get::{{closure}}
at /home/admin/neon/pageserver/src/pgdatadir_mapping.rs:1656:63
18: pageserver::pgdatadir_mapping::<impl pageserver::tenant::timeline::Timeline>::list_slru_segments::{{closure}}
at /home/admin/neon/pageserver/src/pgdatadir_mapping.rs:602:47
19: pageserver::pgdatadir_mapping::<impl pageserver::tenant::timeline::Timeline>::map_all_timestamps::{{closure}}
at /home/admin/neon/pageserver/src/pgdatadir_mapping.rs:540:14
20: pageserver::pgdatadir_mapping::<impl pageserver::tenant::timeline::Timeline>::is_latest_commit_timestamp_ge_than::{{closure}}
at /home/admin/neon/pageserver/src/pgdatadir_mapping.rs:503:10
21: pageserver::pgdatadir_mapping::<impl pageserver::tenant::timeline::Timeline>::find_lsn_for_timestamp::{{closure}}
at /home/admin/neon/pageserver/src/pgdatadir_mapping.rs:442:18
22: pageserver::http::routes::get_lsn_by_timestamp_handler::{{closure}}
at /home/admin/neon/pageserver/src/http/routes.rs:724:10
23: pageserver::http::routes::api_handler::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at /home/admin/neon/pageserver/src/http/routes.rs:2215:48
This commit is contained in:
@@ -692,6 +692,7 @@ async fn timeline_detail_handler(
|
||||
json_response(StatusCode::OK, timeline_info)
|
||||
}
|
||||
|
||||
#[instrument(skip_all, fields(tenant_id, shard_id, timeline_id))]
|
||||
async fn get_lsn_by_timestamp_handler(
|
||||
request: Request<Body>,
|
||||
cancel: CancellationToken,
|
||||
@@ -714,6 +715,17 @@ async fn get_lsn_by_timestamp_handler(
|
||||
.map_err(ApiError::BadRequest)?;
|
||||
let timestamp_pg = postgres_ffi::to_pg_timestamp(timestamp);
|
||||
|
||||
tracing::Span::current()
|
||||
.record(
|
||||
"tenant_id",
|
||||
tracing::field::display(&tenant_shard_id.tenant_id),
|
||||
)
|
||||
.record(
|
||||
"shard_id",
|
||||
tracing::field::display(tenant_shard_id.shard_slug()),
|
||||
)
|
||||
.record("timeline_id", tracing::field::display(&timeline_id));
|
||||
|
||||
let ctx = RequestContext::new(TaskKind::MgmtRequest, DownloadBehavior::Download);
|
||||
|
||||
let timeline =
|
||||
|
||||
Reference in New Issue
Block a user