From 7e4beb8fca66946ffc272bcdb33ef2d150ff8231 Mon Sep 17 00:00:00 2001 From: xyctruth <398041993@qq.com> Date: Fri, 24 Jun 2022 11:50:50 +0800 Subject: [PATCH] fix err is nil --- dtmcli/dtmimp/utils.go | 1 + dtmcli/tcc.go | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dtmcli/dtmimp/utils.go b/dtmcli/dtmimp/utils.go index 97ca42c..386d834 100644 --- a/dtmcli/dtmimp/utils.go +++ b/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 { diff --git a/dtmcli/tcc.go b/dtmcli/tcc.go index 6c2d191..a0b6ff9 100644 --- a/dtmcli/tcc.go +++ b/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)