func (mysqld *Mysqld) restoreAfterSnapshot(slaveStartRequired, readOnly bool, hookExtraEnv map[string]string, connToRelease dbconnpool.PoolConnection) (err error) { // Try to fix mysqld regardless of snapshot success.. log.Infof("exec UNLOCK TABLES") _, err = connToRelease.ExecuteFetch("UNLOCK TABLES", 10000, false) connToRelease.Recycle() if err != nil { return fmt.Errorf("failed to UNLOCK TABLES: %v", err) } // restore original mysqld state that we saved above if slaveStartRequired { if err = mysqld.StartSlave(hookExtraEnv); err != nil { return } // this should be quick, but we might as well just wait if err = mysqld.WaitForSlaveStart(5); err != nil { return } } if err = mysqld.SetReadOnly(readOnly); err != nil { return } return nil }