Browse Source

xa add rollback_reason

pull/310/head
xyctruth 4 years ago
parent
commit
f796e5c3ba
  1. 4
      dtmsvr/trans_type_xa.go
  2. 2
      test/tcc_test.go
  3. 1
      test/xa_test.go

4
dtmsvr/trans_type_xa.go

@ -1,6 +1,8 @@
package dtmsvr
import (
"fmt"
"github.com/dtm-labs/dtm/dtmcli"
"github.com/dtm-labs/dtm/dtmcli/dtmimp"
)
@ -22,7 +24,7 @@ func (t *transXaProcessor) ProcessOnce(branches []TransBranch) error {
return nil
}
if t.Status == dtmcli.StatusPrepared && t.isTimeout() {
t.changeStatus(dtmcli.StatusAborting)
t.changeStatus(dtmcli.StatusAborting, withRollbackReason(fmt.Sprintf("Timeout after %d seconds", t.TimeoutToFail)))
}
currentType := dtmimp.If(t.Status == dtmcli.StatusSubmitted, dtmimp.OpCommit, dtmimp.OpRollback).(string)
for i, branch := range branches {

2
test/tcc_test.go

@ -7,7 +7,6 @@
package test
import (
"fmt"
"testing"
"github.com/dtm-labs/dtm/dtmcli"
@ -69,7 +68,6 @@ func TestTccTimeout(t *testing.T) {
assert.Error(t, err)
assert.Equal(t, StatusFailed, getTransStatus(gid))
assert.Regexp(t, `^Timeout after \d+ seconds$`, getTrans(gid).RollbackReason)
fmt.Println(getTrans(gid).RollbackReason)
assert.Equal(t, []string{StatusSucceed, StatusPrepared}, getBranchesStatus(gid))
}

1
test/xa_test.go

@ -94,6 +94,7 @@ func TestXaTimeout(t *testing.T) {
})
assert.Error(t, err)
assert.Equal(t, StatusFailed, getTransStatus(gid))
assert.Regexp(t, `^Timeout after \d+ seconds$`, getTrans(gid).RollbackReason)
assert.Equal(t, []string{}, getBranchesStatus(gid))
}

Loading…
Cancel
Save