Return blank span if no call is active.

Otherwise unit tests of gRPC servers that call GetSpanFromServerContext
segfault.
pull/23569/head
Sam Khan 5 years ago
parent 5d803dcd3f
commit 9dc71643fa
  1. 2
      src/cpp/ext/filters/census/grpc_plugin.cc
  2. 2
      src/cpp/server/server_context.cc

@ -57,6 +57,8 @@ void RegisterOpenCensusPlugin() {
::opencensus::trace::Span GetSpanFromServerContext( ::opencensus::trace::Span GetSpanFromServerContext(
grpc::ServerContext* context) { grpc::ServerContext* context) {
if (context == nullptr) return opencensus::trace::Span::BlankSpan();
return reinterpret_cast<const grpc::CensusContext*>(context->census_context()) return reinterpret_cast<const grpc::CensusContext*>(context->census_context())
->Span(); ->Span();
} }

@ -367,7 +367,7 @@ std::string ServerContextBase::peer() const {
} }
const struct census_context* ServerContextBase::census_context() const { const struct census_context* ServerContextBase::census_context() const {
return grpc_census_call_get_context(call_); return call_ == nullptr ? nullptr : grpc_census_call_get_context(call_);
} }
void ServerContextBase::SetLoadReportingCosts( void ServerContextBase::SetLoadReportingCosts(

Loading…
Cancel
Save