Open
Description
Issue description
when I call func (tx *mysqlTx) Commit() (err error) ,if connection has problem it return an ErrInvalidConn
but if current connection is fine it call exec
and in exec it call readResultSetHeaderPacket after the transaction sent to db successfully, and readResultSetHeaderPacket call readPacket() and it also may lead to ErrInvalidConn
thus I can't distinguish whether the transaction has been sent, it lead to one transaction sent twice and data not correct. Is it possible to add a new error to distinguish this two cases?
Example code
If possible, please enter some example code here to reproduce the issue.
err = tx.Commit(ctx)
if err != nil {
xlog.Errorf(ctx, "%s commit transaction failed, table:%v err:%v", fun, table, err) ...
Error log
***err:invalid connection
Configuration
Driver version (or git SHA):
*Go version: go1.12 linux/amd64
*Server version: tidb
*Server OS: redhat7.2