in gdbclient/gdbclient.go [166:189]
func (c *baseClient) BatchSubmit(batchSubmit func(ClientShell) error) error {
if !c.session {
return errors.New("batch submit is not allowed in non-session client")
}
if err := c.transaction(_OPEN); err != nil {
return err
}
err := batchSubmit(c)
if err == nil {
err = c.transaction(_COMMIT)
}
// rollback submit errors, include batch submit and commit
if err != nil {
err2 := c.transaction(_ROLLBACK)
if err2 != nil {
internal.Logger.Error("unstable transaction status as rollback failed", zap.Error(err), zap.Time("time", time.Now()))
return err2
}
}
return err
}