Skip to content

Commit 7d3786d

Browse files
authoredJan 27, 2025··
[Wf-Diagnostics] Failure of usage logs emission should'nt fail the workflow (cadence-workflow#6644)
* [Wf-Diagnostics] Failure of usage logs emission should'nt fail the workflow * Update parent_workflow.go
1 parent cd71f46 commit 7d3786d

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed
 

‎service/worker/diagnostics/parent_workflow.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828

2929
"go.uber.org/cadence/workflow"
3030

31+
"github.com/uber/cadence/common/log/tag"
3132
"github.com/uber/cadence/service/worker/diagnostics/analytics"
3233
)
3334

@@ -85,6 +86,7 @@ func (w *dw) DiagnosticsStarterWorkflow(ctx workflow.Context, params Diagnostics
8586
workflowResult.DiagnosticsCompleted = true
8687
childWfEnd = workflow.Now(ctx)
8788

89+
info := workflow.GetInfo(ctx)
8890
activityOptions := workflow.ActivityOptions{
8991
ScheduleToCloseTimeout: time.Second * 10,
9092
ScheduleToStartTimeout: time.Second * 5,
@@ -103,7 +105,10 @@ func (w *dw) DiagnosticsStarterWorkflow(ctx workflow.Context, params Diagnostics
103105
DiagnosticsEndTime: childWfEnd,
104106
}).Get(ctx, nil)
105107
if err != nil {
106-
return nil, fmt.Errorf("EmitUsageLogs: %w", err)
108+
w.logger.Error("wf-diagnostics usage logs emission failed",
109+
tag.Error(err),
110+
tag.WorkflowID(info.WorkflowExecution.ID),
111+
tag.WorkflowRunID(info.WorkflowExecution.RunID))
107112
}
108113

109114
return &workflowResult, nil

‎service/worker/diagnostics/workflow_test.go

+16
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func (s *diagnosticsWorkflowTestSuite) SetupTest() {
6363
mockResource := resource.NewTest(s.T(), controller, metrics.Worker)
6464
publicClient := mockResource.GetSDKClient()
6565
s.dw = &dw{
66+
logger: mockResource.GetLogger(),
6667
svcClient: publicClient,
6768
clientBean: mockResource.ClientBean,
6869
metricsClient: mockResource.GetMetricsClient(),
@@ -164,6 +165,21 @@ func (s *diagnosticsWorkflowTestSuite) TestWorkflow_Error() {
164165
s.EqualError(s.workflowEnv.GetWorkflowError(), errExpected.Error())
165166
}
166167

168+
func (s *diagnosticsWorkflowTestSuite) TestWorkflow_NoErrorIfEmitLogsActivityFails() {
169+
params := &DiagnosticsWorkflowInput{
170+
Domain: "test",
171+
WorkflowID: "123",
172+
RunID: "abc",
173+
}
174+
mockErr := errors.New("mockErr")
175+
s.workflowEnv.OnActivity(identifyIssuesActivity, mock.Anything, mock.Anything).Return(nil, nil)
176+
s.workflowEnv.OnActivity(rootCauseIssuesActivity, mock.Anything, mock.Anything).Return(nil, nil)
177+
s.workflowEnv.OnActivity(emitUsageLogsActivity, mock.Anything, mock.Anything).Return(mockErr)
178+
s.workflowEnv.ExecuteWorkflow(diagnosticsStarterWorkflow, params)
179+
s.True(s.workflowEnv.IsWorkflowCompleted())
180+
s.NoError(s.workflowEnv.GetWorkflowError())
181+
}
182+
167183
func (s *diagnosticsWorkflowTestSuite) queryDiagnostics() DiagnosticsStarterWorkflowResult {
168184
queryFuture, err := s.workflowEnv.QueryWorkflow(queryDiagnosticsReport)
169185
s.NoError(err)

0 commit comments

Comments
 (0)
Please sign in to comment.