@@ -27,6 +27,7 @@ import (
2727 "context"
2828 "errors"
2929 "fmt"
30+ "go.uber.org/yarpc"
3031 "sync"
3132 "time"
3233
@@ -356,7 +357,7 @@ func (wtp *workflowTaskPoller) processWorkflowTask(task *workflowTask) error {
356357 func (response interface {}, startTime time.Time ) (* workflowTask , error ) {
357358 wtp .logger .Debug ("Force RespondDecisionTaskCompleted." , zap .Int64 ("TaskStartedEventID" , task .task .GetStartedEventId ()))
358359 wtp .metricsScope .Counter (metrics .DecisionTaskForceCompleted ).Inc (1 )
359- heartbeatResponse , err := wtp .RespondTaskCompleted (response , nil , task .task , startTime )
360+ heartbeatResponse , err := wtp .RespondTaskCompletedWithMetrics (response , nil , task .task , startTime )
360361 if err != nil {
361362 return nil , err
362363 }
@@ -375,7 +376,7 @@ func (wtp *workflowTaskPoller) processWorkflowTask(task *workflowTask) error {
375376 if errors .As (err , new (* decisionHeartbeatError )) {
376377 return err
377378 }
378- response , err = wtp .RespondTaskCompleted (completedRequest , err , task .task , startTime )
379+ response , err = wtp .RespondTaskCompletedWithMetrics (completedRequest , err , task .task , startTime )
379380 if err != nil {
380381 return err
381382 }
@@ -404,7 +405,7 @@ func (wtp *workflowTaskPoller) processResetStickinessTask(rst *resetStickinessTa
404405 return nil
405406}
406407
407- func (wtp * workflowTaskPoller ) RespondTaskCompleted (completedRequest interface {}, taskErr error , task * s.PollForDecisionTaskResponse , startTime time.Time ) (response * s.RespondDecisionTaskCompletedResponse , err error ) {
408+ func (wtp * workflowTaskPoller ) RespondTaskCompletedWithMetrics (completedRequest interface {}, taskErr error , task * s.PollForDecisionTaskResponse , startTime time.Time ) (response * s.RespondDecisionTaskCompletedResponse , err error ) {
408409 metricsScope := wtp .metricsScope .GetTaggedScope (tagWorkflowType , task .WorkflowType .GetName ())
409410 if taskErr != nil {
410411 metricsScope .Counter (metrics .DecisionExecutionFailedCounter ).Inc (1 )
@@ -444,7 +445,7 @@ func (wtp *workflowTaskPoller) respondTaskCompleted(completedRequest interface{}
444445}
445446
446447func (wtp * workflowTaskPoller ) respondTaskCompletedAttempt (completedRequest interface {}, task * s.PollForDecisionTaskResponse ) (* s.RespondDecisionTaskCompletedResponse , error ) {
447- ctx , cancel , _ := newChannelContext (context .Background (), wtp .featureFlags )
448+ ctx , cancel , opts := newChannelContext (context .Background (), wtp .featureFlags )
448449 defer cancel ()
449450 var (
450451 err error
@@ -453,36 +454,38 @@ func (wtp *workflowTaskPoller) respondTaskCompletedAttempt(completedRequest inte
453454 )
454455 switch request := completedRequest .(type ) {
455456 case * s.RespondDecisionTaskFailedRequest :
456- err = wtp .handleDecisionFailedRequest (ctx , task , request )
457+ err = wtp .handleDecisionFailedRequest (ctx , task , request , opts ... )
457458 operation = "RespondDecisionTaskFailed"
458459 case * s.RespondDecisionTaskCompletedRequest :
459- response , err = wtp .handleDecisionTaskCompletedRequest (ctx , task , request )
460+ response , err = wtp .handleDecisionTaskCompletedRequest (ctx , task , request , opts ... )
460461 operation = "RespondDecisionTaskCompleted"
461462 case * s.RespondQueryTaskCompletedRequest :
462- err = wtp .service .RespondQueryTaskCompleted (ctx , request , getYarpcCallOptions ( wtp . featureFlags ) ... )
463+ err = wtp .service .RespondQueryTaskCompleted (ctx , request , opts ... )
463464 operation = "RespondQueryTaskCompleted"
464465 default :
465466 // should not happen
466467 panic ("unknown request type from ProcessWorkflowTask()" )
467468 }
468469
469470 traceLog (func () {
470- wtp .logger .Debug ("Call failed." , zap .Error (err ), zap .String ("Operation" , operation ))
471+ if err != nil {
472+ wtp .logger .Debug (fmt .Sprintf ("%s failed." , operation ), zap .Error (err ))
473+ }
471474 })
472475
473476 return response , err
474477}
475478
476- func (wtp * workflowTaskPoller ) handleDecisionFailedRequest (ctx context.Context , task * s.PollForDecisionTaskResponse , request * s.RespondDecisionTaskFailedRequest ) error {
479+ func (wtp * workflowTaskPoller ) handleDecisionFailedRequest (ctx context.Context , task * s.PollForDecisionTaskResponse , request * s.RespondDecisionTaskFailedRequest , opts ... yarpc. CallOption ) error {
477480 // Only fail decision on first attempt, subsequent failure on the same decision task will timeout.
478481 // This is to avoid spin on the failed decision task. Checking Attempt not nil for older server.
479482 if task .Attempt != nil && task .GetAttempt () == 0 {
480- return wtp .service .RespondDecisionTaskFailed (ctx , request , getYarpcCallOptions ( wtp . featureFlags ) ... )
483+ return wtp .service .RespondDecisionTaskFailed (ctx , request , opts ... )
481484 }
482485 return nil
483486}
484487
485- func (wtp * workflowTaskPoller ) handleDecisionTaskCompletedRequest (ctx context.Context , task * s.PollForDecisionTaskResponse , request * s.RespondDecisionTaskCompletedRequest ) (response * s.RespondDecisionTaskCompletedResponse , err error ) {
488+ func (wtp * workflowTaskPoller ) handleDecisionTaskCompletedRequest (ctx context.Context , task * s.PollForDecisionTaskResponse , request * s.RespondDecisionTaskCompletedRequest , opts ... yarpc. CallOption ) (response * s.RespondDecisionTaskCompletedResponse , err error ) {
486489 if request .StickyAttributes == nil && ! wtp .disableStickyExecution {
487490 request .StickyAttributes = & s.StickyExecutionAttributes {
488491 WorkerTaskList : & s.TaskList {Name : common .StringPtr (getWorkerTaskList (wtp .stickyUUID ))},
@@ -538,7 +541,7 @@ func (wtp *workflowTaskPoller) handleDecisionTaskCompletedRequest(ctx context.Co
538541 }()
539542 }
540543
541- return wtp .service .RespondDecisionTaskCompleted (ctx , request , getYarpcCallOptions ( wtp . featureFlags ) ... )
544+ return wtp .service .RespondDecisionTaskCompleted (ctx , request , opts ... )
542545}
543546
544547func newLocalActivityPoller (params workerExecutionParameters , laTunnel * localActivityTunnel ) * localActivityTaskPoller {
0 commit comments