From f551f475f07c105d9d40ce05074f4a771aae3029 Mon Sep 17 00:00:00 2001 From: easy Date: Mon, 8 Oct 2018 20:43:06 +1100 Subject: [PATCH] GenerateServerContext: Don't use a parent context if it's invalid. --- src/cpp/ext/filters/census/context.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/cpp/ext/filters/census/context.cc b/src/cpp/ext/filters/census/context.cc index 4b3250236d0..78fc69a8054 100644 --- a/src/cpp/ext/filters/census/context.cc +++ b/src/cpp/ext/filters/census/context.cc @@ -29,9 +29,15 @@ void GenerateServerContext(absl::string_view tracing, absl::string_view stats, absl::string_view primary_role, absl::string_view method, CensusContext* context) { GrpcTraceContext trace_ctxt; - TraceContextEncoding::Decode(tracing, &trace_ctxt); - SpanContext parent_ctx = trace_ctxt.ToSpanContext(); - new (context) CensusContext(method, parent_ctx); + if (TraceContextEncoding::Decode(tracing, &trace_ctxt) != + TraceContextEncoding::kEncodeDecodeFailure) { + SpanContext parent_ctx = trace_ctxt.ToSpanContext(); + if (parent_ctx.IsValid()) { + new (context) CensusContext(method, parent_ctx); + return; + } + } + new (context) CensusContext(method); } void GenerateClientContext(absl::string_view method, CensusContext* ctxt,