mirror of
https://github.com/golang/go.git
synced 2025-10-19 11:03:18 +00:00
database/sql: wake cleaner if maxIdleTime set to less than maxLifetime
The existing implementation wouldn't wake the connection cleaner if
maxIdleTime was set to a value less than maxLifetime while an existing
connection was open - resulting in idle connections not being discarded
until after the first maxLifetime had passed.
Fixes #45993
Change-Id: I074ed7ba9803354c8b3a41f2625ae0d8a7d5059b
GitHub-Last-Rev: 0d149d8d38
GitHub-Pull-Request: golang/go#58490
Reviewed-on: https://go-review.googlesource.com/c/go/+/467655
Auto-Submit: Sean Liao <sean@liao.dev>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Sean Liao <sean@liao.dev>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
3cefe69c5a
commit
7b263895f7
1 changed files with 2 additions and 2 deletions
|
@ -1050,7 +1050,7 @@ func (db *DB) SetConnMaxLifetime(d time.Duration) {
|
||||||
}
|
}
|
||||||
db.mu.Lock()
|
db.mu.Lock()
|
||||||
// Wake cleaner up when lifetime is shortened.
|
// Wake cleaner up when lifetime is shortened.
|
||||||
if d > 0 && d < db.maxLifetime && db.cleanerCh != nil {
|
if d > 0 && d < db.shortestIdleTimeLocked() && db.cleanerCh != nil {
|
||||||
select {
|
select {
|
||||||
case db.cleanerCh <- struct{}{}:
|
case db.cleanerCh <- struct{}{}:
|
||||||
default:
|
default:
|
||||||
|
@ -1074,7 +1074,7 @@ func (db *DB) SetConnMaxIdleTime(d time.Duration) {
|
||||||
defer db.mu.Unlock()
|
defer db.mu.Unlock()
|
||||||
|
|
||||||
// Wake cleaner up when idle time is shortened.
|
// Wake cleaner up when idle time is shortened.
|
||||||
if d > 0 && d < db.maxIdleTime && db.cleanerCh != nil {
|
if d > 0 && d < db.shortestIdleTimeLocked() && db.cleanerCh != nil {
|
||||||
select {
|
select {
|
||||||
case db.cleanerCh <- struct{}{}:
|
case db.cleanerCh <- struct{}{}:
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue