mirror of
https://github.com/element-hq/matrix-authentication-service.git
synced 2026-10-22 17:32:47 +00:00
Fix spurious "Failed to set parent context on span" error (#5228)
This commit is contained in:
1 file changed
+16
-11
+16
-11
@@ -136,18 +136,23 @@ fn make_http_span<B>(req: &Request<B>) -> Span {
|
||||
span.record(USER_AGENT_ORIGINAL, user_agent);
|
||||
}
|
||||
|
||||
// Extract the parent span context from the request headers
|
||||
let parent_context = opentelemetry::global::get_text_map_propagator(|propagator| {
|
||||
let extractor = HeaderExtractor(req.headers());
|
||||
let context = opentelemetry::Context::new();
|
||||
propagator.extract_with_context(&context, &extractor)
|
||||
});
|
||||
// In case the span is disabled by any of tracing layers, e.g. if `RUST_LOG`
|
||||
// is set to `warn`, `set_parent` will fail. So we only try to set the
|
||||
// parent context if the span is not disabled.
|
||||
if !span.is_disabled() {
|
||||
// Extract the parent span context from the request headers
|
||||
let parent_context = opentelemetry::global::get_text_map_propagator(|propagator| {
|
||||
let extractor = HeaderExtractor(req.headers());
|
||||
let context = opentelemetry::Context::new();
|
||||
propagator.extract_with_context(&context, &extractor)
|
||||
});
|
||||
|
||||
if let Err(err) = span.set_parent(parent_context) {
|
||||
tracing::error!(
|
||||
error = &err as &dyn std::error::Error,
|
||||
"Failed to set parent context on span"
|
||||
);
|
||||
if let Err(err) = span.set_parent(parent_context) {
|
||||
tracing::error!(
|
||||
error = &err as &dyn std::error::Error,
|
||||
"Failed to set parent context on span"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
span
|
||||
|
||||
Reference in new issue
Block a user