diff options
author | Vijay Pai <vpai@google.com> | 2018-11-07 11:50:44 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-07 11:50:44 -0800 |
commit | 5cdf7a0cf7777b4bc7fae3c390d12a2da9f1ff86 (patch) | |
tree | 793f3c10f3f01dcc691c9b0c50580dcd3db70ceb /src/cpp | |
parent | 01c6565fb5a9631f6f1dd4f81662af711cab30aa (diff) | |
parent | f551f475f07c105d9d40ce05074f4a771aae3029 (diff) |
Merge pull request #16805 from g-easy/ocplugin
GenerateServerContext: Don't use a parent context if it's invalid.
Diffstat (limited to 'src/cpp')
-rw-r--r-- | src/cpp/ext/filters/census/context.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/cpp/ext/filters/census/context.cc b/src/cpp/ext/filters/census/context.cc index 4b3250236d..78fc69a805 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, |