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, 16 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/31220/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..d19dc9b 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;
+
     public SPMAsyncTask(CommandCoordinator coco, AsyncTaskParameters 
parameters) {
         this.coco = coco;
         setParameters(parameters);
@@ -219,9 +221,8 @@
             setLastStatusAccessTime();
         }
 
-        // A task that belongs to a partially submitted command needs to be
-        // failed no matter what the status of the task is.
-        if (isPartiallyCompletedCommandTask()) {
+        // Fail zombie task and task that belongs to a partially submitted 
command
+        if (isZombieTask() || isPartiallyCompletedCommandTask()) {
             
getParameters().getDbAsyncTask().getTaskParameters().setTaskGroupSuccess(false);
             
ExecutionHandler.endTaskStep(privateParameters.getDbAsyncTask().getStepId(), 
JobExecutionStatus.FAILED);
             onTaskEndFailure();
@@ -492,4 +493,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/31220
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to