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
