mirror of https://github.com/golang/go.git
The issue go#46783 correctly diagnosed the context timeout caused an intermittent failure when the context was canceled prior to the BeginTx call. However due to the asynchronous nature of canceling a Tx through a context on fast systems, the tx.Prepare also succeeded. On slower systems or if a time.Sleep was inserted between the BeginTx and Prepare, the Prepare would fail. Resolve this by moving the context cancel after the Prepare. This will still trigger the deadlock which I tested locally. In addition, I interspersed multiple time.Sleep calls and the test still functioned. Fixes #46852 Change-Id: I9cbf90d3c12b2555493a37799738772b615ae39d Reviewed-on: https://go-review.googlesource.com/c/go/+/329830 Run-TryBot: Daniel Theophanes <kardianos@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Bryan C. Mills <bcmills@google.com> |
||
|---|---|---|
| .. | ||
| driver | ||
| convert.go | ||
| convert_test.go | ||
| ctxutil.go | ||
| doc.txt | ||
| example_cli_test.go | ||
| example_service_test.go | ||
| example_test.go | ||
| fakedb_test.go | ||
| sql.go | ||
| sql_test.go | ||