From 46dd2c12703d143faa20e335f6b55652693a1e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zsolt=20B=C3=B6l=C3=B6ny?= Date: Thu, 5 May 2022 19:23:32 +0200 Subject: [PATCH 1/2] Fix Tracestate propagation tests --- api/test/trace/propagation/http_text_format_test.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/test/trace/propagation/http_text_format_test.cc b/api/test/trace/propagation/http_text_format_test.cc index d42d508860..8fa0e44ed2 100644 --- a/api/test/trace/propagation/http_text_format_test.cc +++ b/api/test/trace/propagation/http_text_format_test.cc @@ -55,8 +55,8 @@ TEST(TextMapPropagatorTest, NoSendEmptyTraceState) context::Context ctx2 = format.Extract(carrier, ctx1); TextMapCarrierTest carrier2; format.Inject(carrier2, ctx2); - EXPECT_TRUE(carrier.headers_.count("traceparent") > 0); - EXPECT_FALSE(carrier.headers_.count("tracestate") > 0); + EXPECT_TRUE(carrier2.headers_.count("traceparent") > 0); + EXPECT_FALSE(carrier2.headers_.count("tracestate") > 0); } TEST(TextMapPropagatorTest, PropogateTraceState) @@ -72,8 +72,8 @@ TEST(TextMapPropagatorTest, PropogateTraceState) TextMapCarrierTest carrier2; format.Inject(carrier2, ctx2); - EXPECT_TRUE(carrier.headers_.count("traceparent") > 0); - EXPECT_TRUE(carrier.headers_.count("tracestate") > 0); + EXPECT_TRUE(carrier2.headers_.count("traceparent") > 0); + EXPECT_TRUE(carrier2.headers_.count("tracestate") > 0); EXPECT_EQ(carrier2.headers_["tracestate"], "congo=t61rcWkgMzE"); } From 3a295ad7262a6f1363c5b71c92c64685c011fd7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zsolt=20B=C3=B6l=C3=B6ny?= Date: Thu, 5 May 2022 19:23:58 +0200 Subject: [PATCH 2/2] Don't set empty Tracestate header --- .../opentelemetry/trace/propagation/http_trace_context.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/include/opentelemetry/trace/propagation/http_trace_context.h b/api/include/opentelemetry/trace/propagation/http_trace_context.h index 91905b794e..9440960be3 100644 --- a/api/include/opentelemetry/trace/propagation/http_trace_context.h +++ b/api/include/opentelemetry/trace/propagation/http_trace_context.h @@ -100,7 +100,11 @@ class HttpTraceContext : public opentelemetry::context::propagation::TextMapProp nostd::span{&trace_parent[kTraceIdSize + kSpanIdSize + 5], 2}); carrier.Set(kTraceParent, nostd::string_view(trace_parent, sizeof(trace_parent))); - carrier.Set(kTraceState, span_context.trace_state()->ToHeader()); + const auto trace_state = span_context.trace_state()->ToHeader(); + if (!trace_state.empty()) + { + carrier.Set(kTraceState, trace_state); + } } static SpanContext ExtractContextFromTraceHeaders(nostd::string_view trace_parent,