Ravi Nori has uploaded a new change for review.

Change subject: engine : Zombie tasks should endWithFailure
......................................................................

engine : Zombie tasks should endWithFailure

Zombie tasks that are stopped and cleared should
be marked so they end in failure

Change-Id: I01125b507ab116440277bebdd7190a7daecbd810
Bug-Url: https://bugzilla.redhat.com/1122639
Signed-off-by: Ravi Nori <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java
3 files changed, 21 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/31038/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
index 6fd78c3..343ba82 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
@@ -394,6 +394,8 @@
                 // status
                 if (task.getLastTaskStatus().getStatus() != 
AsyncTaskStatusEnum.finished
                         && task.getLastTaskStatus().getStatus() != 
AsyncTaskStatusEnum.unknown) {
+                    // mark it as a zombie task, Will result in failure of the 
command
+                    task.setZombieTask(true);
                     AuditLogDirector.log(logable, 
AuditLogType.TASK_STOPPING_ASYNC_TASK);
 
                     log.infoFormat("Cleaning zombie tasks: Stopping async task 
{0} that started at {1}",
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
index 0b9a4bd..8047fa2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
@@ -23,6 +23,8 @@
 
     protected final CommandCoordinator coco;
 
+    private boolean zombieTask = false;
+
     public SPMAsyncTask(CommandCoordinator coco, AsyncTaskParameters 
parameters) {
         this.coco = coco;
         setParameters(parameters);
@@ -217,6 +219,13 @@
         if (getState() != AsyncTaskState.Ended) {
             setState(AsyncTaskState.Ended);
             setLastStatusAccessTime();
+        }
+
+        // A zombie task that has been stopped and cleared needs to failed
+        if (isZombieTask()) {
+            
getParameters().getDbAsyncTask().getTaskParameters().setTaskGroupSuccess(false);
+            
ExecutionHandler.endTaskStep(privateParameters.getDbAsyncTask().getStepId(), 
JobExecutionStatus.FAILED);
+            onTaskEndFailure();
         }
 
         // A task that belongs to a partially submitted command needs to be
@@ -492,4 +501,11 @@
         this.partiallyCompletedCommandTask = val;
     }
 
+    public boolean isZombieTask() {
+        return zombieTask;
+    }
+
+    public void setZombieTask(boolean zombieTask) {
+        this.zombieTask = zombieTask;
+    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java
index 83aa26f..dfb1157 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java
@@ -64,4 +64,7 @@
 
     void setEntitiesMap(Map<Guid, VdcObjectType> entitiesMap);
 
+    void setZombieTask(boolean val);
+
+    boolean isZombieTask();
 }


-- 
To view, visit http://gerrit.ovirt.org/31038
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I01125b507ab116440277bebdd7190a7daecbd810
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to