Closed
Description
Issue description
After multiple successive deadline exceeded errors, on connection Open
or Ping
Error 1129
is returned and can no longer connect to the DB unless FLUSH HOSTS
is called.
Looks like #941 is causing the problem. I was able to reproduce it on 17ef3dd and 89ec2a9. But not on df597a2
Example code
package main
import (
"context"
"database/sql"
"log"
"time"
"github.com/go-sql-driver/mysql"
)
func main() {
for {
conn, err := mysql.MySQLDriver{}.OpenConnector("user:password@tcp(addr:port)/db")
if err != nil {
log.Fatal("OpenConnector", err)
}
db := sql.OpenDB(conn)
err = db.Ping()
if err != nil {
log.Fatal("Ping", err)
}
for j := 0; j < 200; j++ {
query(db)
}
log.Println("Close", db.Close())
}
}
func query(d *sql.DB) {
ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
defer cancel()
rows, err := d.QueryContext(ctx, "SELECT * FROM my_table")
if err != nil {
log.Println("QueryContext", err)
return
}
defer rows.Close()
}
Logs
....
2020/01/21 11:40:55 QueryContext context deadline exceeded
2020/01/21 11:40:55 QueryContext context deadline exceeded
2020/01/21 11:40:55 QueryContext context deadline exceeded
2020/01/21 11:40:55 QueryContext context deadline exceeded
2020/01/21 11:40:55 QueryContext context deadline exceeded
2020/01/21 11:40:55 Close <nil>
2020/01/21 11:40:55 PingError 1129: Host '10.9.10.189' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
Process finished with exit code 1
Configuration
Driver version (or git SHA): 1.5.0 17ef3dd
Go version: go version go1.13.4 darwin/amd64
Server version: 10.1.34-MariaDB
Metadata
Metadata
Assignees
Labels
No labels