Add both stdout and stderr as failures reason for job
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/7c30f789 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/7c30f789 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/7c30f789 Branch: refs/heads/master Commit: 7c30f789c59eaeb8b8a60615419f7964b722b695 Parents: 6c301e6 Author: Shameera Rathnayaka <[email protected]> Authored: Fri Apr 1 11:57:42 2016 -0400 Committer: Shameera Rathnayaka <[email protected]> Committed: Fri Apr 1 11:57:42 2016 -0400 ---------------------------------------------------------------------- .../apache/airavata/gfac/impl/HPCRemoteCluster.java | 8 +++++++- .../gfac/impl/task/DefaultJobSubmissionTask.java | 13 ++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/7c30f789/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java index 2e5c3a7..677ba9b 100644 --- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java +++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/HPCRemoteCluster.java @@ -94,10 +94,16 @@ public class HPCRemoteCluster extends AbstractRemoteCluster{ if (jsoutput.getJobId() == null) { if (outputParser.isJobSubmissionFailed(reader.getStdOutputString())) { jsoutput.setJobSubmissionFailed(true); - jsoutput.setFailureReason(reader.getStdOutputString()); + jsoutput.setFailureReason("stdout : " + reader.getStdOutputString() + + "\n stderr : " + reader.getStdErrorString()); } } jsoutput.setExitCode(reader.getExitCode()); + if (jsoutput.getExitCode() != 0) { + jsoutput.setJobSubmissionFailed(true); + jsoutput.setFailureReason("stdout : " + reader.getStdOutputString() + + "\n stderr : " + reader.getStdErrorString()); + } jsoutput.setStdOut(reader.getStdOutputString()); jsoutput.setStdErr(reader.getStdErrorString()); return jsoutput; http://git-wip-us.apache.org/repos/asf/airavata/blob/7c30f789/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java index 975602f..a4be386 100644 --- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java +++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java @@ -103,27 +103,30 @@ public class DefaultJobSubmissionTask implements JobSubmissionTask { GFacUtils.saveProcessError(processContext, errorModel); GFacUtils.saveTaskError(taskContext, errorModel); taskStatus.setState(TaskState.FAILED); - taskStatus.setReason("Job submission command exit with non zero exit code"); + taskStatus.setReason("Job submission command didn't return a jobId"); taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime()); taskContext.setTaskStatus(taskStatus); } else { String msg; GFacUtils.saveJobModel(processContext, jobModel); + ErrorModel errorModel = new ErrorModel(); if (exitCode != Integer.MIN_VALUE) { msg = "expId:" + processContext.getProcessModel().getExperimentId() + ", processId:" + processContext.getProcessId() + ", taskId: " + taskContext.getTaskId() + " return non zero exit code:" + exitCode + " for JobName:" + jobModel.getJobName() + - ", with failure reason : " + jobSubmissionOutput.getStdOut() + " Hence changing job state to Failed." ; + ", with failure reason : " + jobSubmissionOutput.getFailureReason() + + " Hence changing job state to Failed." ; + errorModel.setActualErrorMessage(jobSubmissionOutput.getFailureReason()); } else { msg = "expId:" + processContext.getProcessModel().getExperimentId() + ", processId:" + processContext.getProcessId() + ", taskId: " + taskContext.getTaskId() + " doesn't return valid job submission exit code for JobName:" + jobModel.getJobName() + - ", with failure reason : " + jobSubmissionOutput.getStdOut() + " Hence changing job state to Failed." ; + ", with failure reason : stdout ->" + jobSubmissionOutput.getStdOut() + + " stderr -> " + jobSubmissionOutput.getStdErr() + " Hence changing job state to Failed." ; + errorModel.setActualErrorMessage(msg); } log.error(msg); - ErrorModel errorModel = new ErrorModel(); errorModel.setUserFriendlyMessage(msg); - errorModel.setActualErrorMessage(msg); GFacUtils.saveExperimentError(processContext, errorModel); GFacUtils.saveProcessError(processContext, errorModel); GFacUtils.saveTaskError(taskContext, errorModel);
