aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2018-11-07 11:50:44 -0800
committerGravatar GitHub <noreply@github.com>2018-11-07 11:50:44 -0800
commit5cdf7a0cf7777b4bc7fae3c390d12a2da9f1ff86 (patch)
tree793f3c10f3f01dcc691c9b0c50580dcd3db70ceb /src/cpp
parent01c6565fb5a9631f6f1dd4f81662af711cab30aa (diff)
parentf551f475f07c105d9d40ce05074f4a771aae3029 (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.cc12
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,