aboutsummaryrefslogtreecommitdiff
path: root/internal/database/database.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2021-02-22 12:48:25 -0500
committerJonathan Amsterdam <jba@google.com>2021-02-22 22:12:58 +0000
commit60f6a33267c8ea2378713a28d19249733037ee62 (patch)
tree96f8396b78ff41ef9bffbdd7f2877f146a126d9c /internal/database/database.go
parent25a7f2100b780df02c19f9eb45f7d7aab1a111ef (diff)
downloadgo-x-pkgsite-60f6a33267c8ea2378713a28d19249733037ee62.tar.xz
internal/database: gather more info about serialization retry
A serialization failure isn't being retried for reasons I don't understand, so added logging to gather more information. Change-Id: Ifa2bc12d4caccde3d48520706692ad8f7bc75cd5 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/294951 Trust: Jonathan Amsterdam <jba@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com> TryBot-Result: kokoro <noreply+kokoro@google.com> Reviewed-by: Jamal Carvalho <jamal@golang.org>
Diffstat (limited to 'internal/database/database.go')
-rw-r--r--internal/database/database.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/internal/database/database.go b/internal/database/database.go
index e03ae5fe..f2d29f9e 100644
--- a/internal/database/database.go
+++ b/internal/database/database.go
@@ -195,9 +195,12 @@ func (db *DB) transactWithRetry(ctx context.Context, opts *sql.TxOptions, txFunc
db.mu.Unlock()
continue
}
- if err != nil && strings.Contains(err.Error(), serializationFailureCode) {
- return fmt.Errorf("error text has %q but not recognized as serialization failure: type %T, err %v",
- serializationFailureCode, err, err)
+ if err != nil {
+ log.Debugf(ctx, "transactWithRetry: error type %T: %[1]v", err)
+ if strings.Contains(err.Error(), serializationFailureCode) {
+ return fmt.Errorf("error text has %q but not recognized as serialization failure: type %T, err %v",
+ serializationFailureCode, err, err)
+ }
}
if i > 0 {
log.Debugf(ctx, "retried serializable transaction %d time(s)", i)