Skip to content

Commit

Permalink
Add back stack traces in error logging for failed transport queries
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Widdis <[email protected]>
  • Loading branch information
dbwiddis committed Feb 26, 2024
1 parent 28c331c commit 899f031
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 33 deletions.
5 changes: 1 addition & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,16 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)

## [Unreleased 2.x](https://github.com/opensearch-project/flow-framework/compare/2.12...2.x)
### Features
<<<<<<< HEAD
- Add HttpHost WorkflowStep ([#530](https://github.com/opensearch-project/flow-framework/pull/530))

### Enhancements
- Substitute REST path or body parameters in Workflow Steps ([#525](https://github.com/opensearch-project/flow-framework/pull/525))

=======
### Enhancements
>>>>>>> 495e5db (Remove stack traces and exception causes from logs)
### Bug Fixes
### Infrastructure
### Documentation
### Maintenance
### Refactoring
- Moved workflow-steps.json to Enum ([#523](https://github.com/opensearch-project/flow-framework/pull/523))
- Refactored loging for consistency ([#524](https://github.com/opensearch-project/flow-framework/pull/524))
- Refactored logging for consistency ([#524](https://github.com/opensearch-project/flow-framework/pull/524))
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
validateWorkflows(templateWithUser);
} catch (Exception e) {
String errorMessage = "Workflow validation failed for template " + templateWithUser.name();
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(
e instanceof FlowFrameworkException ? e : new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e))
);
Expand Down Expand Up @@ -163,7 +163,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
listener.onResponse(new WorkflowResponse(provisionResponse.getWorkflowId()));
}, exception -> {
String errorMessage = "Provisioning failed.";
logger.error(errorMessage);
logger.error(errorMessage, exception);
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);
} else {
Expand All @@ -181,7 +181,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
}
}, exception -> {
String errorMessage = "Failed to save workflow state";
logger.error(errorMessage);
logger.error(errorMessage, exception);

Check warning on line 184 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L183-L184

Added lines #L183 - L184 were not covered by tests
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);
} else {
Expand All @@ -191,7 +191,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
);
}, exception -> {
String errorMessage = "Failed to save use case template";
logger.error(errorMessage);
logger.error(errorMessage, exception);
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);
} else {
Expand All @@ -204,7 +204,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
}
}, exception -> {
String errorMessage = "Failed to initialize config index";
logger.error(errorMessage);
logger.error(errorMessage, exception);

Check warning on line 207 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L206-L207

Added lines #L206 - L207 were not covered by tests
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);
} else {
Expand All @@ -214,7 +214,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
}
}, exception -> {
String errorMessage = "Failed to update use case template " + request.getWorkflowId();
logger.error(errorMessage);
logger.error(errorMessage, exception);

Check warning on line 217 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L216-L217

Added lines #L216 - L217 were not covered by tests
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);

Check warning on line 219 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L219

Added line #L219 was not covered by tests
} else {
Expand All @@ -239,7 +239,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
listener.onResponse(new WorkflowResponse(request.getWorkflowId()));
}, exception -> {
String errorMessage = "Failed to update workflow " + request.getWorkflowId() + " in template index";
logger.error(errorMessage);
logger.error(errorMessage, exception);

Check warning on line 242 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L241-L242

Added lines #L241 - L242 were not covered by tests
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);
} else {
Expand All @@ -249,7 +249,7 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
);
}, exception -> {
String errorMessage = "Failed to update use case template " + request.getWorkflowId();
logger.error(errorMessage);
logger.error(errorMessage, exception);
if (exception instanceof FlowFrameworkException) {
listener.onFailure(exception);
} else {
Expand Down Expand Up @@ -280,12 +280,12 @@ void checkMaxWorkflows(TimeValue requestTimeOut, Integer maxWorkflow, ActionList
internalListener.onResponse(searchResponse.getHits().getTotalHits().value < maxWorkflow);
}, exception -> {
String errorMessage = "Unable to fetch the workflows";
logger.error(errorMessage);
logger.error(errorMessage, exception);
internalListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)));

Check warning on line 284 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L282-L284

Added lines #L282 - L284 were not covered by tests
}));
} catch (Exception e) {
String errorMessage = "Unable to fetch the workflows";
logger.error(errorMessage);
logger.error(errorMessage, e);
internalListener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e)));

Check warning on line 289 in src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/CreateWorkflowTransportAction.java#L287-L289

Added lines #L287 - L289 were not covered by tests
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,12 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
.execute(() -> executeDeprovisionSequence(workflowId, response.getWorkflowState().resourcesCreated(), listener));
}, exception -> {
String errorMessage = "Failed to get workflow state for workflow " + workflowId;
logger.error(errorMessage);
logger.error(errorMessage, exception);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)));

Check warning on line 111 in src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java#L109-L111

Added lines #L109 - L111 were not covered by tests
}));
} catch (Exception e) {
String errorMessage = "Failed to retrieve template from global context.";
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e)));

Check warning on line 116 in src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java#L114-L116

Added lines #L114 - L116 were not covered by tests
}
}
Expand Down Expand Up @@ -235,7 +235,7 @@ private void updateWorkflowState(
),
ActionListener.wrap(updateResponse -> {
logger.info("updated workflow {} state to NOT_STARTED", workflowId);
}, exception -> { logger.error("Failed to update workflow state"); })
}, exception -> { logger.error("Failed to update workflow state", exception); })

Check warning on line 238 in src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java#L238

Added line #L238 was not covered by tests
);
// return workflow ID
listener.onResponse(new WorkflowResponse(workflowId));
Expand All @@ -251,7 +251,7 @@ private void updateWorkflowState(
),
ActionListener.wrap(updateResponse -> {
logger.info("updated workflow {} state to COMPLETED", workflowId);
}, exception -> { logger.error("Failed to update workflow {} state", workflowId); })
}, exception -> { logger.error("Failed to update workflow {} state", workflowId, exception); })

Check warning on line 254 in src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/DeprovisionWorkflowTransportAction.java#L254

Added line #L254 was not covered by tests
);
// give user list of remaining resources
listener.onFailure(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ protected void doExecute(Task task, GetWorkflowStateRequest request, ActionListe
listener.onResponse(new GetWorkflowStateResponse(workflowState, request.getAll()));
} catch (Exception e) {
String errorMessage = "Failed to parse workflowState: " + r.getId();
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST));

Check warning on line 83 in src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java#L81-L83

Added lines #L81 - L83 were not covered by tests
}
} else {
Expand All @@ -90,13 +90,13 @@ protected void doExecute(Task task, GetWorkflowStateRequest request, ActionListe
listener.onFailure(new FlowFrameworkException("Fail to find workflow " + workflowId, RestStatus.NOT_FOUND));

Check warning on line 90 in src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java#L90

Added line #L90 was not covered by tests
} else {
String errorMessage = "Failed to get workflow status of: " + workflowId;
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.NOT_FOUND));

Check warning on line 94 in src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java#L92-L94

Added lines #L92 - L94 were not covered by tests
}
}), context::restore));
} catch (Exception e) {
String errorMessage = "Failed to get workflow: " + workflowId;
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e)));

Check warning on line 100 in src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/GetWorkflowStateTransportAction.java#L98-L100

Added lines #L98 - L100 were not covered by tests
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ protected void doExecute(Task task, ActionRequest request, ActionListener<GetWor
listener.onResponse(new GetWorkflowStepResponse(workflowValidator));
} catch (Exception e) {
String errorMessage = "Failed to retrieve workflow step json.";
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e)));

Check warning on line 59 in src/main/java/org/opensearch/flowframework/transport/GetWorkflowStepTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/GetWorkflowStepTransportAction.java#L57-L59

Added lines #L57 - L59 were not covered by tests
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<GetW
}
}, exception -> {
String errorMessage = "Failed to retrieve template (" + workflowId + ") from global context.";
logger.error(errorMessage);
logger.error(errorMessage, exception);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)));
}));
} catch (Exception e) {
String errorMessage = "Failed to retrieve template (" + workflowId + ") from global context.";
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e)));

Check warning on line 94 in src/main/java/org/opensearch/flowframework/transport/GetWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/GetWorkflowTransportAction.java#L92-L94

Added lines #L92 - L94 were not covered by tests
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,13 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
listener.onResponse(new WorkflowResponse(workflowId));
}, exception -> {
String errorMessage = "Failed to update workflow state: " + workflowId;

Check warning on line 150 in src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java#L150

Added line #L150 was not covered by tests
logger.error(errorMessage);
logger.error(errorMessage, exception);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)));
})
);
} else {
String errorMessage = "The template has already been provisioned: " + workflowId;
logger.error(errorMessage);
logger.info(errorMessage);
listener.onFailure(new FlowFrameworkException(errorMessage, RestStatus.BAD_REQUEST));
}
}, listener);
Expand All @@ -164,13 +164,13 @@ protected void doExecute(Task task, WorkflowRequest request, ActionListener<Work
listener.onFailure(exception);
} else {
String errorMessage = "Failed to retrieve template from global context for workflow " + workflowId;
logger.error(errorMessage);
logger.error(errorMessage, exception);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(exception)));
}
}));
} catch (Exception e) {
String errorMessage = "Failed to retrieve template from global context for workflow " + workflowId;
logger.error(errorMessage);
logger.error(errorMessage, e);
listener.onFailure(new FlowFrameworkException(errorMessage, ExceptionsHelper.status(e)));

Check warning on line 174 in src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java#L172-L174

Added lines #L172 - L174 were not covered by tests
}
}
Expand Down Expand Up @@ -232,10 +232,10 @@ private void executeWorkflow(List<ProcessNode> workflowSequence, String workflow
),
ActionListener.wrap(updateResponse -> {
logger.info("updated workflow {} state to {}", workflowId, State.COMPLETED);
}, exception -> { logger.error("Failed to update workflow state for workflow {}", workflowId); })
}, exception -> { logger.error("Failed to update workflow state for workflow {}", workflowId, exception); })

Check warning on line 235 in src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java#L235

Added line #L235 was not covered by tests
);
} catch (Exception ex) {
logger.error("Provisioning failed for workflow {} during step {}.", workflowId, currentStepId);
logger.error("Provisioning failed for workflow {} during step {}.", workflowId, currentStepId, ex);
String errorMessage = (ex.getCause() == null ? ex.getClass().getName() : ex.getCause().getClass().getName())
+ " during step "
+ currentStepId;
Expand All @@ -249,7 +249,7 @@ private void executeWorkflow(List<ProcessNode> workflowSequence, String workflow
),
ActionListener.wrap(updateResponse -> {
logger.info("updated workflow {} state to {}", workflowId, State.FAILED);
}, exceptionState -> { logger.error("Failed to update workflow state for workflow {}", workflowId); })
}, exceptionState -> { logger.error("Failed to update workflow state for workflow {}", workflowId, exceptionState); })

Check warning on line 252 in src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/ProvisionWorkflowTransportAction.java#L252

Added line #L252 was not covered by tests
);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ protected void doExecute(Task task, SearchRequest request, ActionListener<Search
logger.info("Searching workflow states in global context");
client.search(request, ActionListener.runBefore(actionListener, context::restore));
} catch (Exception e) {
logger.error("Failed to search workflow states in global context");
logger.error("Failed to search workflow states in global context", e);

Check warning on line 52 in src/main/java/org/opensearch/flowframework/transport/SearchWorkflowStateTransportAction.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/opensearch/flowframework/transport/SearchWorkflowStateTransportAction.java#L52

Added line #L52 was not covered by tests
actionListener.onFailure(e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ protected void doExecute(Task task, SearchRequest request, ActionListener<Search
logger.info("Searching workflows in global context");
client.search(request, ActionListener.runBefore(actionListener, context::restore));
} catch (Exception e) {
logger.error("Failed to search workflows in global context");
logger.error("Failed to search workflows in global context", e);
actionListener.onFailure(e);
}
}
Expand Down

0 comments on commit 899f031

Please sign in to comment.