aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
authorDaniel Theophanes <kardianos@gmail.com>2020-04-22 12:45:44 -0700
committerDaniel Theophanes <kardianos@gmail.com>2020-04-22 22:10:09 +0000
commited7888aea6021e25b0ea58bcad3f26da2b139432 (patch)
tree1d4eada04baba1a60fc98fdd34d7bdd85dc84034 /src/database/sql/sql.go
parent9a93baf4d7d13d7d5c67388c93960d78abc8e11e (diff)
downloadgo-ed7888aea6021e25b0ea58bcad3f26da2b139432.tar.xz
database/sql: de-flake TestTxCannotCommitAfterRollback
Do not cancel rows during test. Only cancel the Tx. Correct the referenced issue number on the test. Fixes #38597 Change-Id: I0e8ba1bf2a8ba638d121c9c6938501fec1d5e961 Reviewed-on: https://go-review.googlesource.com/c/go/+/229478 Run-TryBot: Daniel Theophanes <kardianos@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
-rw-r--r--src/database/sql/sql.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index 6e31714445..374dd98b00 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -2793,10 +2793,17 @@ func (rs *Rows) lasterrOrErrLocked(err error) error {
return err
}
+// bypassRowsAwaitDone is only used for testing.
+// If true, it will not close the Rows automatically from the context.
+var bypassRowsAwaitDone = false
+
func (rs *Rows) initContextClose(ctx, txctx context.Context) {
if ctx.Done() == nil && (txctx == nil || txctx.Done() == nil) {
return
}
+ if bypassRowsAwaitDone {
+ return
+ }
ctx, rs.cancel = context.WithCancel(ctx)
go rs.awaitDone(ctx, txctx)
}