Browse Source

check more error in barrier

pull/197/head
yedf2 4 years ago
parent
commit
7a05755819
  1. 14
      dtmcli/barrier.go

14
dtmcli/barrier.go

@ -81,14 +81,20 @@ func (bb *BranchBarrier) Call(tx *sql.Tx, busiCall BarrierBusiFunc) (rerr error)
BranchCompensate: BranchAction, BranchCompensate: BranchAction,
}[ti.Op] }[ti.Op]
originAffected, _ := insertBarrier(tx, ti.TransType, ti.Gid, ti.BranchID, originOp, bid, ti.Op) originAffected, oerr := insertBarrier(tx, ti.TransType, ti.Gid, ti.BranchID, originOp, bid, ti.Op)
currentAffected, rerr := insertBarrier(tx, ti.TransType, ti.Gid, ti.BranchID, ti.Op, bid, ti.Op) currentAffected, rerr := insertBarrier(tx, ti.TransType, ti.Gid, ti.BranchID, ti.Op, bid, ti.Op)
logger.Debugf("originAffected: %d currentAffected: %d", originAffected, currentAffected) logger.Debugf("originAffected: %d currentAffected: %d", originAffected, currentAffected)
if (ti.Op == BranchCancel || ti.Op == BranchCompensate) && originAffected > 0 || // 这个是空补偿 if rerr == nil {
currentAffected == 0 { // 这个是重复请求或者悬挂 rerr = oerr
}
if (ti.Op == BranchCancel || ti.Op == BranchCompensate) && originAffected > 0 || // null compensate
currentAffected == 0 { // repeated request or dangled request
return return
} }
rerr = busiCall(tx) if rerr == nil {
rerr = busiCall(tx)
}
return return
} }

Loading…
Cancel
Save