diff options
| author | Daniel Theophanes <kardianos@gmail.com> | 2018-09-29 22:10:43 -0700 |
|---|---|---|
| committer | Daniel Theophanes <kardianos@gmail.com> | 2018-10-02 19:24:37 +0000 |
| commit | 7db509e682891f3bc501c7b23e32e02c64893557 (patch) | |
| tree | b650c82f7a2b38a5166c037739d532e7bfed588e /src/database/sql/sql.go | |
| parent | 9aed4cc3956117d3d435bcd90e69d5e1820f8ad3 (diff) | |
| download | go-7db509e682891f3bc501c7b23e32e02c64893557.tar.xz | |
database/sql: correctly report MaxIdleClosed stat
Previously the MaxIdleClosed counter was incremented when added
to the free connection list, rather then when it wasn't added
to the free connection list. Flip this logic to correct.
Fixes #27792
Change-Id: I405302c14fb985369dab48fbe845e5651afc4ccf
Reviewed-on: https://go-review.googlesource.com/c/138578
Run-TryBot: Daniel Theophanes <kardianos@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
| -rw-r--r-- | src/database/sql/sql.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go index 7537f87d47..7c8d46b100 100644 --- a/src/database/sql/sql.go +++ b/src/database/sql/sql.go @@ -1322,11 +1322,13 @@ func (db *DB) putConnDBLocked(dc *driverConn, err error) bool { err: err, } return true - } else if err == nil && !db.closed && db.maxIdleConnsLocked() > len(db.freeConn) { - db.freeConn = append(db.freeConn, dc) + } else if err == nil && !db.closed { + if db.maxIdleConnsLocked() > len(db.freeConn) { + db.freeConn = append(db.freeConn, dc) + db.startCleanerLocked() + return true + } db.maxIdleClosed++ - db.startCleanerLocked() - return true } return false } |
