[
https://issues.apache.org/jira/browse/GOBBLIN-1552?focusedWorklogId=659945&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-659945
]
ASF GitHub Bot logged work on GOBBLIN-1552:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 04/Oct/21 22:58
Start Date: 04/Oct/21 22:58
Worklog Time Spent: 10m
Work Description: arjun4084346 commented on a change in pull request
#3403:
URL: https://github.com/apache/gobblin/pull/3403#discussion_r721772374
##########
File path:
gobblin-runtime/src/main/java/org/apache/gobblin/service/monitoring/JobStatusRetriever.java
##########
@@ -212,4 +224,60 @@ public static boolean
isFlowStatus(org.apache.gobblin.service.monitoring.JobStat
return jobStatus.getJobName() != null && jobStatus.getJobGroup() != null
&& jobStatus.getJobName().equals(JobStatusRetriever.NA_KEY) &&
jobStatus.getJobGroup().equals(JobStatusRetriever.NA_KEY);
}
+
+ public ExecutionStatus getFlowStatusFromJobStatuses(Iterator<JobStatus>
jobStatusIterator) {
+ ExecutionStatus flowExecutionStatus = ExecutionStatus.$UNKNOWN;
+
+ if (dagManagerEnabled) {
+ while (jobStatusIterator.hasNext()) {
+ JobStatus jobStatus = jobStatusIterator.next();
+ // Check if this is the flow status instead of a single job status
+ if (JobStatusRetriever.isFlowStatus(jobStatus)) {
+ flowExecutionStatus =
ExecutionStatus.valueOf(jobStatus.getEventName());
+ }
+ }
+ } else {
+ while (jobStatusIterator.hasNext()) {
+ JobStatus jobStatus = jobStatusIterator.next();
+ if (!JobStatusRetriever.isFlowStatus(jobStatus)) {
+ flowExecutionStatus =
updatedFlowExecutionStatus(ExecutionStatus.valueOf(jobStatus.getEventName()),
flowExecutionStatus);
+ }
+ }
+ }
+ return flowExecutionStatus;
+ }
+
+ static ExecutionStatus updatedFlowExecutionStatus(ExecutionStatus
jobExecutionStatus,
+ ExecutionStatus currentFlowExecutionStatus) {
+ if (currentFlowExecutionStatus == ExecutionStatus.$UNKNOWN) {
+ return jobExecutionStatus;
+ }
+
+ // if any job failed or flow has failed then return failed status
+ if (currentFlowExecutionStatus == ExecutionStatus.FAILED ||
+ jobExecutionStatus == ExecutionStatus.FAILED) {
+ return ExecutionStatus.FAILED;
+ }
+
+ // if any job is cancelled or flow has failed then return failed status
+ if (currentFlowExecutionStatus == ExecutionStatus.CANCELLED ||
+ jobExecutionStatus == ExecutionStatus.CANCELLED) {
+ return ExecutionStatus.CANCELLED;
+ }
+
+ if (currentFlowExecutionStatus == ExecutionStatus.COMPLETE &&
+ jobExecutionStatus == ExecutionStatus.PENDING) {
+ return ExecutionStatus.PENDING;
Review comment:
Yea, it was incorrectly copied from
https://github.com/apache/gobblin/commit/59f3beeea1e62dcc1f3901f082e46bc3d237f9fb#diff-141f30f7aa658e9e18316e3e5ecea3b92865dcc88a4c0809b6d5c0ef1598e410
where initial status was COMPLETE
I will fix it
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 659945)
Time Spent: 0.5h (was: 20m)
> fix flow status reporting when dag manager is not enabled
> ---------------------------------------------------------
>
> Key: GOBBLIN-1552
> URL: https://issues.apache.org/jira/browse/GOBBLIN-1552
> Project: Apache Gobblin
> Issue Type: Bug
> Reporter: Arjun Singh Bora
> Priority: Major
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> flow status is determined by looking at the flow level events. but flow level
> events are not emitted outside of dag manager. so currently flow status is
> not being determined correctly when dag manager is disabled
--
This message was sent by Atlassian Jira
(v8.3.4#803005)