TaskInfo taskInfo = getTaskInfoOfRunningStreamJob(jobId);
Assert.assertNotNull("TaskInfo is null",taskInfo);
Assert.assertTrue("Task has not been started for 1 min.",
jtClient.isTaskStarted(taskInfo));
JobInfo jInfo = wovenClient.getJobInfo(jobId);
RunningJob networkJob = client.getJob(jobId);
TaskID tID = TaskID.downgrade(taskInfo.getTaskID());
TaskAttemptID taskAttID = new TaskAttemptID(tID, 0);
networkJob.killTask(taskAttID, false);
int counter = 0;
while (counter++ < 60) {
if (taskInfo.getTaskStatus().length == 0) {
UtilsForTests.waitFor(1000);
taskInfo = wovenClient.getTaskInfo(taskInfo.getTaskID());
} else if (taskInfo.getTaskStatus()[0].getRunState() ==
TaskStatus.State.RUNNING) {
UtilsForTests.waitFor(1000);
taskInfo = wovenClient.getTaskInfo(taskInfo.getTaskID());
} else if (taskInfo.getTaskStatus()[0].getRunState() ==
TaskStatus.State.KILLED_UNCLEAN) {
UtilsForTests.waitFor(1000);
taskInfo = wovenClient.getTaskInfo(taskInfo.getTaskID());
} else {
break;
}
}
Assert.assertTrue("Task has been killed before sigkill " +
"sleep time of 3 secs.", counter > 3 && TaskStatus.State.KILLED ==
taskInfo.getTaskStatus()[0].getRunState());
LOG.info("Waiting till the job is completed...");
while (!jInfo.getStatus().isJobComplete()) {
UtilsForTests.waitFor(100);
jInfo = wovenClient.getJobInfo(jobId);
}
Assert.assertEquals("Job has not been succeeded.",
jInfo.getStatus().getRunState(), JobStatus.SUCCEEDED);
}