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: I8ab86d97dbf1c94dd887c5ccc2a438a41ccd1f37 Bug-Url: https://bugzilla.redhat.com/1122639 Signed-off-by: Ravi Nori <rn...@redhat.com> --- 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, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/35/30935/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..1adcbd0 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 @@ -389,11 +389,12 @@ AuditLogableBase logable = new AuditLogableBase(); logable.addCustomValue("CommandName", task.getParameters().getDbAsyncTask().getaction_type().toString()); logable.addCustomValue("Date", task.getParameters().getDbAsyncTask().getStartTime().toString()); - // if task is not finish and not unknown then it's in running // 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 8a48cfd..5a56d7f 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..8b02a82 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 @@ -60,6 +60,10 @@ boolean isPartiallyCompletedCommandTask(); + void setZombieTask(boolean val); + + boolean isZombieTask(); + Map<Guid, VdcObjectType> getEntitiesMap(); void setEntitiesMap(Map<Guid, VdcObjectType> entitiesMap); -- To view, visit http://gerrit.ovirt.org/30935 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8ab86d97dbf1c94dd887c5ccc2a438a41ccd1f37 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <rn...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches