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

Most upvoted comments

@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.