Skip to content

Commit

Permalink
fix: 修复在开启备份时,执行错误时偶尔出现的标记执行/备份成功问题
Browse files Browse the repository at this point in the history
  • Loading branch information
hanchuanchuan committed May 10, 2019
1 parent f09eecc commit ea69434
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions session/session_inception.go
Original file line number Diff line number Diff line change
Expand Up @@ -1146,8 +1146,8 @@ func (s *session) executeAllStatement(ctx context.Context) {

s.SetMyProcessInfo(record.Sql, time.Now(), float64(i)/float64(count))

errno := s.executeRemoteCommand(record)
if errno == 2 {
s.executeRemoteCommand(record)
if s.hasErrorBefore() {
break
}

Expand Down Expand Up @@ -1274,29 +1274,31 @@ func (s *session) executeRemoteStatementAndBackup(record *Record) {

s.executeRemoteStatement(record)

if s.opt.backup {
masterStatus := s.mysqlFetchMasterBinlogPosition()
if masterStatus == nil {
s.AppendErrorNo(ErrNotFoundMasterStatus)
return
} else {
record.EndFile = masterStatus.File
record.EndPosition = masterStatus.Position

// 开始位置和结束位置一样,无变更
if record.StartFile == record.EndFile &&
record.StartPosition == record.EndPosition {

record.StartFile = ""
record.StartPosition = 0
record.EndFile = ""
record.EndPosition = 0
if !s.hasError() {
if s.opt.backup {
masterStatus := s.mysqlFetchMasterBinlogPosition()
if masterStatus == nil {
s.AppendErrorNo(ErrNotFoundMasterStatus)
return
} else {
record.EndFile = masterStatus.File
record.EndPosition = masterStatus.Position

// 开始位置和结束位置一样,无变更
if record.StartFile == record.EndFile &&
record.StartPosition == record.EndPosition {

record.StartFile = ""
record.StartPosition = 0
record.EndFile = ""
record.EndPosition = 0
return
}
}
}
}

record.ExecComplete = true
record.ExecComplete = true
}
}

func (s *session) mysqlFetchMasterBinlogPosition() *MasterStatus {
Expand Down

0 comments on commit ea69434

Please sign in to comment.