Browse Source

fix err is nil

pull/317/head
xyctruth 4 years ago
parent
commit
7e4beb8fca
  1. 1
      dtmcli/dtmimp/utils.go
  2. 4
      dtmcli/tcc.go

1
dtmcli/dtmimp/utils.go

@ -253,6 +253,7 @@ func RespAsErrorByJSONRPC(resp *resty.Response) error {
// DeferDo a common defer do used in dtmcli/dtmgrpc
func DeferDo(rerr *error, success func() error, fail func() error) {
if x := recover(); x != nil {
*rerr = AsError(x)
_ = fail()
panic(x)
} else if *rerr != nil {

4
dtmcli/tcc.go

@ -41,7 +41,9 @@ func TccGlobalTransaction2(dtm string, gid string, custom func(*Tcc), tccFunc Tc
defer dtmimp.DeferDo(&rerr, func() error {
return dtmimp.TransCallDtm(&tcc.TransBase, tcc, "submit")
}, func() error {
tcc.RollbackReason = rerr.Error()
if rerr != nil {
tcc.RollbackReason = rerr.Error()
}
return dtmimp.TransCallDtm(&tcc.TransBase, tcc, "abort")
})
_, rerr = tccFunc(tcc)

Loading…
Cancel
Save