datastore: don't retry on DEADLINE_EXCEEDED
Per https://aip.dev/194, this error should not be retried by
the client.
Fixes #1434
Change-Id: I2ac6ae0732280a5787c2d57a2549c975f8b99d73
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/49411
Reviewed-by: Jean de Klerk <deklerk@google.com>
Reviewed-by: kokoro <noreply+kokoro@google.com>
diff --git a/datastore/client.go b/datastore/client.go
index 3eba4d5..4348069 100644
--- a/datastore/client.go
+++ b/datastore/client.go
@@ -113,6 +113,8 @@
if !ok {
return false
}
- // See https://cloud.google.com/datastore/docs/concepts/errors.
- return s.Code() == codes.Unavailable || s.Code() == codes.DeadlineExceeded
+ // Only retry on UNAVAILABLE as per https://aip.dev/194. Other errors from
+ // https://cloud.google.com/datastore/docs/concepts/errors may be retried
+ // by the user if desired, but are not retried by the clientg.
+ return s.Code() == codes.Unavailable
}