-
Notifications
You must be signed in to change notification settings - Fork 965
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix observation scope handlings in grpc server instrumentation #3836
Fix observation scope handlings in grpc server instrumentation #3836
Conversation
Prior to this change, when grpc server receives requests in parallel, wrong scopes might have been used. This change ensures the proper scope is used for dispatched callback methods. Fixes micrometer-metricsgh-3805
Observation observation = GrpcObservationDocumentation.SERVER.observation(this.customConvention, | ||
DEFAULT_CONVENTION, contextSupplier, this.registry); | ||
Observation observation = GrpcObservationDocumentation.SERVER | ||
.observation(this.customConvention, DEFAULT_CONVENTION, contextSupplier, this.registry) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
THREAD_SAFETY_VIOLATION: Read/Write race. Non-private method ObservationGrpcServerInterceptor.interceptCall(...)
reads without synchronization from this.customConvention
. Potentially races with write in method ObservationGrpcServerInterceptor.setCustomConvention(...)
.
Reporting because a superclass class io.grpc.ServerInterceptor
is annotated @ThreadSafe
, so we assume that this method can run in parallel with other non-private methods in the class (including itself).
ℹ️ Expand to see all @sonatype-lift commands
You can reply with the following commands. For example, reply with @sonatype-lift ignoreall to leave out all findings.
Command | Usage |
---|---|
@sonatype-lift ignore |
Leave out the above finding from this PR |
@sonatype-lift ignoreall |
Leave out all the existing findings from this PR |
@sonatype-lift exclude <file|issue|path|tool> |
Exclude specified file|issue|path|tool from Lift findings by updating your config.toml file |
Note: When talking to LiftBot, you need to refresh the page to see its response.
Click here to add LiftBot to another repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sonatype-lift ignore
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've recorded this as ignored for this pull request.
If you change your mind, just comment @sonatype-lift unignore
.
Thank you! |
Prior to this change, when grpc server receives requests in parallel, wrong scopes might have been used.
This change ensures the proper scope is used for dispatched callback methods.
Fixes gh-3805