From 48f1cde942959e2fc3c56973a2986c24d554c82c Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 8 Nov 2021 14:29:16 +0000 Subject: database/sql: prevent closes slices from assigning to free conn In function connectionCleanerRunLocked append to closing slice affects db.freeConns and vise versa. Sometimes valid connections are closed and some invalid not. Change-Id: I5282f15be3e549533b7d994b17b2060db3c0e7da GitHub-Last-Rev: b3eb3ab6f49c036519f777fc7189e9507010c166 GitHub-Pull-Request: golang/go#49429 Reviewed-on: https://go-review.googlesource.com/c/go/+/362214 Reviewed-by: Daniel Theophanes Reviewed-by: Ian Lance Taylor --- src/database/sql/sql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/database/sql/sql.go') diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go index 5131c08b51..c5b4f50aa7 100644 --- a/src/database/sql/sql.go +++ b/src/database/sql/sql.go @@ -1115,7 +1115,7 @@ func (db *DB) connectionCleanerRunLocked(d time.Duration) (time.Duration, []*dri c := db.freeConn[i] if c.returnedAt.Before(idleSince) { i++ - closing = db.freeConn[:i] + closing = db.freeConn[:i:i] db.freeConn = db.freeConn[i:] idleClosing = int64(len(closing)) db.maxIdleTimeClosed += idleClosing -- cgit v1.3