From 7a05755819bc5feebeeab90e9bb18fafb4eb39dd Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Thu, 27 Jan 2022 22:43:52 +0800 Subject: [PATCH] check more error in barrier --- dtmcli/barrier.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dtmcli/barrier.go b/dtmcli/barrier.go index 497ab63..a017b64 100644 --- a/dtmcli/barrier.go +++ b/dtmcli/barrier.go @@ -81,14 +81,20 @@ func (bb *BranchBarrier) Call(tx *sql.Tx, busiCall BarrierBusiFunc) (rerr error) BranchCompensate: BranchAction, }[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) logger.Debugf("originAffected: %d currentAffected: %d", originAffected, currentAffected) - if (ti.Op == BranchCancel || ti.Op == BranchCompensate) && originAffected > 0 || // 这个是空补偿 - currentAffected == 0 { // 这个是重复请求或者悬挂 + if rerr == nil { + rerr = oerr + } + + if (ti.Op == BranchCancel || ti.Op == BranchCompensate) && originAffected > 0 || // null compensate + currentAffected == 0 { // repeated request or dangled request return } - rerr = busiCall(tx) + if rerr == nil { + rerr = busiCall(tx) + } return }