diff --git a/dtmsvr/trans_process.go b/dtmsvr/trans_process.go index 887a0b1..789f3d0 100644 --- a/dtmsvr/trans_process.go +++ b/dtmsvr/trans_process.go @@ -7,6 +7,7 @@ package dtmsvr import ( + "context" "errors" "fmt" "time" @@ -31,14 +32,14 @@ func (t *TransGlobal) process(branches []TransBranch) error { if t.ExtData != "" { dtmimp.MustUnmarshalString(t.ExtData, &t.Ext) } - if !t.WaitResult { - go func() { + go func(ctx context.Context) { + t.Context = CopyContext(ctx) err := t.processInner(branches) if err != nil && !errors.Is(err, dtmimp.ErrOngoing) { logger.Errorf("processInner err: %v", err) } - }() + }(t.Context) return nil } submitting := t.Status == dtmcli.StatusSubmitted diff --git a/dtmsvr/trans_status.go b/dtmsvr/trans_status.go index 4cb2a96..baa51dd 100644 --- a/dtmsvr/trans_status.go +++ b/dtmsvr/trans_status.go @@ -200,7 +200,7 @@ func (t *TransGlobal) getGrpcResult(uri string, branchID, op string, branchPaylo } conn := dtmgimp.MustGetGrpcConn(server, true) - ctx := dtmgimp.TransInfo2Ctx(CopyContext(t.Context), t.Gid, t.TransType, branchID, op, "") + ctx := dtmgimp.TransInfo2Ctx(t.Context, t.Gid, t.TransType, branchID, op, "") kvs := dtmgimp.Map2Kvs(t.Ext.Headers) kvs = append(kvs, dtmgimp.Map2Kvs(t.BranchHeaders)...) ctx = metadata.AppendToOutgoingContext(ctx, kvs...)