Closed
Description
Issue description
When a query is cancelled, a single subsequent unrelated query returns invalid connection
instead of running normally.
Example code
package main
import (
"context"
"database/sql"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/some_db")
if err != nil {
log.Fatal(err)
}
for {
ctx, cancel := context.WithCancel(context.Background())
go cancel()
row := db.QueryRowContext(ctx, `SELECT 1`)
var a int
if err := row.Scan(&a); err != nil && err != context.Canceled {
log.Fatal(err)
}
}
}
Error log
[mysql] 2018/07/17 17:14:03 connection.go:372: invalid connection
...
Configuration
*Driver version (or git SHA): 749ddf1 (latest master at the time of writing)
*Go version:go version go1.10.3 darwin/amd64
*Server version: Percona 5.7
*Server OS: Debian Jessie x64
Metadata
Metadata
Assignees
Labels
No labels