Quellcode durchsuchen

driver.ErrBadConn when init packet read fails (#736)

Thank you!
Reed Allman vor 8 Jahren
Ursprung
Commit
bc14601d1b
2 geänderte Dateien mit 6 neuen und 0 gelöschten Zeilen
  1. 1 0
      AUTHORS
  2. 5 0
      packets.go

+ 1 - 0
AUTHORS

@@ -60,6 +60,7 @@ oscarzhao <oscarzhaosl at gmail.com>
 Paul Bonser <misterpib at gmail.com>
 Peter Schultz <peter.schultz at classmarkets.com>
 Rebecca Chin <rchin at pivotal.io>
+Reed Allman <rdallman10 at gmail.com>
 Runrioter Wung <runrioter at gmail.com>
 Robert Russell <robert at rrbrussell.com>
 Shuode Li <elemount at qq.com>

+ 5 - 0
packets.go

@@ -157,6 +157,11 @@ func (mc *mysqlConn) writePacket(data []byte) error {
 func (mc *mysqlConn) readInitPacket() ([]byte, error) {
 	data, err := mc.readPacket()
 	if err != nil {
+		// for init we can rewrite this to ErrBadConn for sql.Driver to retry, since
+		// in connection initialization we don't risk retrying non-idempotent actions.
+		if err == ErrInvalidConn {
+			return nil, driver.ErrBadConn
+		}
 		return nil, err
 	}