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
Segfault due to access of SafeConfigSelector.cs before initialization #4343
Comments
Thanks for filing the issue. Do you have the client side logs? Do you use xDS? |
Thanks for the quick response! Sorry about the sparse initial report. No, we don't use xDS. In this case we appear to be using the It hadn't occurred to me to enable verbose logging on the client before. In this case, it appears that the the relevant segment: (I've attached a more extensive section of the logs)
|
Thank you! I've added a I confirmed that the "control" branch failed with the segfault from this bug and the bug using the fix in #4398 did not (despite having more runs of the fix branch). |
Great news, thank you for confirming! |
What version of gRPC are you using?
v1.37.0
(also observed withv1.36.1
)Not observed with
v1.35.0
What version of Go are you using (
go version
)?1.16.2
What operating system (Linux, Windows, …) and version?
Linux
What did you do?
If possible, provide a recipe for reproducing the error.
It appears that we're seeing this during initialization of the Google Cloud Spanner client, but creating clients in a loop doesn't seem to reproduce it.
Currently, we're encountering the segfault (below) while running presubmits as a test-flake in tests that interact with a real cloud Spanner instance (hence hitting Google's CFEs). (first encountered after upgrading our
go.mod
)If the cause of such a race isn't clear to the package maintainers, I can try a bit harder to create a repro. (I suspect this is a race opened up during the xds-related refactoring of the ServiceConfig and Resolver support).
What did you expect to see?
No panics, just a connection/RPC invocation.
What did you see instead?
A segfault (nil-pointer dereference) in
google.golang.org/grpc/internal/resolver.(*SafeConfigSelector).SelectConfig
The text was updated successfully, but these errors were encountered: