diff options
| author | Jonathan Amsterdam <jba@google.com> | 2021-02-22 12:48:25 -0500 |
|---|---|---|
| committer | Jonathan Amsterdam <jba@google.com> | 2021-02-22 22:12:58 +0000 |
| commit | 60f6a33267c8ea2378713a28d19249733037ee62 (patch) | |
| tree | 96f8396b78ff41ef9bffbdd7f2877f146a126d9c /internal/database/database.go | |
| parent | 25a7f2100b780df02c19f9eb45f7d7aab1a111ef (diff) | |
| download | go-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.go | 9 |
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) |
