summaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/sql/sql.go')
-rw-r--r--src/database/sql/sql.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index be73b5e372..252a0f6713 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -939,6 +939,7 @@ func (db *DB) connectionResetter(ctx context.Context) {
for {
select {
case <-ctx.Done():
+ close(db.resetterCh)
for dc := range db.resetterCh {
dc.Unlock()
}
@@ -1171,6 +1172,11 @@ func (db *DB) putConn(dc *driverConn, err error, resetSession bool) {
if putConnHook != nil {
putConnHook(db, dc)
}
+ if db.closed {
+ // Connections do not need to be reset if they will be closed.
+ // Prevents writing to resetterCh after the DB has closed.
+ resetSession = false
+ }
if resetSession {
if _, resetSession = dc.ci.(driver.ResetSessioner); resetSession {
// Lock the driverConn here so it isn't released until