google-cloud-go: firestore: Listening to snapshots fail silently when ca-certificates are missing and hangs forever
Client
Firestore
Describe Your Environment
Docker debian:9.6
Expected Behavior
Firestore snapshots should be received
Actual Behavior
Firestore snapshots are not received, but I get no errors
Relevant code:
snapshot := client.Collection("colectionName").Snapshots(ctx)
snapshot.Next()
By enabling the GRPC_GO_LOG_SEVERITY_LEVEL=INFO
variable (thanks to GoogleCloudPlatform/google-cloud-go#791) I clearly see that the error is related to the certificates.
But my guess is that this package could report it at least, that’s why I’m creating this issue.
Seems to be related to this almost-year-old PR grpc/grpc-go#1742
I think this is actually expected from the library (not to work) if the certificates are missing, but I believe they should be reported by the library instead of hanging forever (I know the bug actually lies in the gRPC, but maybe this point was not covered in the library and maybe it’s possible to report it or at very least my intention is to document this behavior as an issue just in case more people goes through this).
Workaround:
The workaround is to install package apt-get install -y ca-certificates
in the docker image.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 19 (13 by maintainers)
Commits related to this issue
- never retry permanent connection errors Now that https://github.com/grpc/grpc-go/pull/2508 is in, gRPC plumbs the last connection error when we attempt to make an RPC on a clientconn that has not bee... — committed to jeanbza/gax-go by jeanbza 6 years ago
- never retry permanent connection errors Now that https://github.com/grpc/grpc-go/pull/2508 is in, gRPC plumbs the last connection error when we attempt to make an RPC on a clientconn that has not bee... — committed to jeanbza/gax-go by jeanbza 6 years ago
- never retry permanent connection errors Now that https://github.com/grpc/grpc-go/pull/2508 is in, gRPC plumbs the last connection error when we attempt to make an RPC on a clientconn that has not bee... — committed to jeanbza/gax-go by jeanbza 6 years ago
- never retry permanent connection errors (#73) Now that https://github.com/grpc/grpc-go/pull/2508 is in, gRPC plumbs the last connection error when we attempt to make an RPC on a clientconn that has ... — committed to googleapis/gax-go by jeanbza 6 years ago
@renannprado You bring up a good point, which is that using context can’t always be the answer, especially in long-lived RPCs. I’ve followed up with the grpc team and we’ve found that a small amount of plumbing is missing to get this error to the client libraries. I’ve PRed that here: https://github.com/grpc/grpc-go/pull/2508.
After that PR, we should be able to check for that error and not retry. 😃
Re-opening this issue to track the work.