spanner: quieten permission denied errors during session preparation
In contexts such as read-only auth, the probes are expected to fail, and
the logging is rather noisy.
Change-Id: I4f581686c82bd5efe8055f8cfe688289e3f912bd
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/49311
Reviewed-by: Knut Olav Løite <koloite@gmail.com>
diff --git a/spanner/session.go b/spanner/session.go
index 239fc3f..42a8fea 100644
--- a/spanner/session.go
+++ b/spanner/session.go
@@ -1186,7 +1186,12 @@
if err != nil {
// Skip handling prepare error, session can be prepared in next
// cycle.
- logf(hc.pool.sc.logger, "Failed to prepare session, error: %v", toSpannerError(err))
+ // Don't log about permission errors, which may be expected
+ // (e.g. using read-only auth).
+ serr := toSpannerError(err).(*Error)
+ if serr.Code != codes.PermissionDenied {
+ logf(hc.pool.sc.logger, "Failed to prepare session, error: %v", serr)
+ }
}
hc.pool.recycle(ws)
hc.pool.mu.Lock()
@@ -1314,7 +1319,12 @@
if err = s.prepareForWrite(prepareContext); err != nil {
cancel()
p.recycle(s)
- logf(p.sc.logger, "Failed to prepare session, error: %v", toSpannerError(err))
+ // Don't log about permission errors, which may be expected
+ // (e.g. using read-only auth).
+ serr := toSpannerError(err).(*Error)
+ if serr.Code != codes.PermissionDenied {
+ logf(p.sc.logger, "Failed to prepare session, error: %v", serr)
+ }
continue
}
cancel()