bugfix(opentelemetry-instrumentation-grpc): Add code() and details() to ServicerContext #1578
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
_OpenTelemetryServicerContext
aims to implement the abstract interface ofgrpc.ServicerContext
.grpc.ServicerContext
supports since grpcio v1.38.0 (s. here) acode()
anddetails()
-method to retrieve the currently set code/details in the servicer method.In contrast,
_OpenTelemetryServicerContext
implementscode
anddetails
as public attributes, which are not callable.Consequently, calling
code()
anddetails()
in a servicer method will fail, when usingOpenTelemetry
, e.g.:will raise an error.
Obviously, the
abc
-module of python allows this bug, since the@abstractmethod
scode()
anddetails()
ofgrpc.ServicerContext
have been overwritten by_OpenTelemetryServicerContext
, although the abstract interface has not been implemented correctly.Fixes (#855)
Please delete options that are not relevant.
How Has This Been Tested?
Not tested.
Does This PR Require a Core Repo Change?
Checklist:
See contributing.md for styleguide, changelog guidelines, and more.