aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Theophanes <kardianos@gmail.com>2017-05-03 08:57:05 -0700
committerChris Broadfoot <cbro@golang.org>2017-05-23 19:41:50 +0000
commit6efa2f22ac45e9f12eccdc0eafe1799b9eb78dd3 (patch)
tree985bba3d15e6a3ccd44efb167850f5ea2c0cd04e
parentfb9770f09b99293a4aba55ec1d0fc6e6733b9e6e (diff)
downloadgo-6efa2f22ac45e9f12eccdc0eafe1799b9eb78dd3.tar.gz
go-6efa2f22ac45e9f12eccdc0eafe1799b9eb78dd3.zip
[release-branch.go1.8] database/sql: ensure releaseConn is defined before a possible close
Applies https://golang.org/cl/42139 to the go1.8 release branch. Also correct two minor issues detected with go vet. Fixes #20217 Change-Id: I2c41af9497493598fbcfc140439b4e25b9bb7e72 Reviewed-on: https://go-review.googlesource.com/42532 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Chris Broadfoot <cbro@golang.org>
-rw-r--r--src/database/sql/sql.go2
-rw-r--r--src/database/sql/sql_test.go5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index c016681fca..f8a884446e 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -1955,12 +1955,12 @@ func (s *Stmt) QueryContext(ctx context.Context, args ...interface{}) (*Rows, er
rowsi: rowsi,
// releaseConn set below
}
- rows.initContextClose(ctx)
s.db.addDep(s, rows)
rows.releaseConn = func(err error) {
releaseConn(err)
s.db.removeDep(s, rows)
}
+ rows.initContextClose(ctx)
return rows, nil
}
diff --git a/src/database/sql/sql_test.go b/src/database/sql/sql_test.go
index 450e5f1f8c..381aafc86b 100644
--- a/src/database/sql/sql_test.go
+++ b/src/database/sql/sql_test.go
@@ -322,7 +322,7 @@ func TestQueryContext(t *testing.T) {
select {
case <-ctx.Done():
if err := ctx.Err(); err != context.Canceled {
- t.Fatalf("context err = %v; want context.Canceled")
+ t.Fatalf("context err = %v; want context.Canceled", ctx.Err())
}
default:
t.Fatalf("context err = nil; want context.Canceled")
@@ -413,7 +413,8 @@ func TestTxContextWait(t *testing.T) {
db := newTestDB(t, "people")
defer closeDB(t, db)
- ctx, _ := context.WithTimeout(context.Background(), time.Millisecond*15)
+ ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*15)
+ defer cancel()
tx, err := db.BeginTx(ctx, nil)
if err != nil {