You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/02 17:27:40 UTC
airavata git commit: Save error on Experiment failures
Repository: airavata
Updated Branches:
refs/heads/airavata-0.15-release-branch 05fb8d32f -> 632d6b986
Save error on Experiment failures
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/632d6b98
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/632d6b98
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/632d6b98
Branch: refs/heads/airavata-0.15-release-branch
Commit: 632d6b986749ddb0df975995394c1cb3207e5e06
Parents: 05fb8d3
Author: Shameera Rathanyaka <sh...@gmail.com>
Authored: Tue Jun 2 11:27:38 2015 -0400
Committer: Shameera Rathanyaka <sh...@gmail.com>
Committed: Tue Jun 2 11:27:38 2015 -0400
----------------------------------------------------------------------
.../gfac/monitor/email/EmailBasedMonitor.java | 14 ++++++++++++++
.../airavata/gfac/ssh/provider/impl/SSHProvider.java | 6 ++++--
2 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/632d6b98/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
index 535a8b3..8816ec2 100644
--- a/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
+++ b/modules/gfac/gfac-monitor/gfac-email-monitor/src/main/java/org/apache/airavata/gfac/monitor/email/EmailBasedMonitor.java
@@ -24,9 +24,11 @@ import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.common.logger.AiravataLogger;
import org.apache.airavata.common.logger.AiravataLoggerFactory;
import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.gfac.GFacException;
import org.apache.airavata.gfac.core.context.JobExecutionContext;
import org.apache.airavata.gfac.core.cpi.BetterGfacImpl;
import org.apache.airavata.gfac.core.utils.GFacThreadPoolExecutor;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
import org.apache.airavata.gfac.core.utils.OutHandlerWorker;
import org.apache.airavata.gfac.monitor.email.parser.EmailParser;
import org.apache.airavata.gfac.monitor.email.parser.LSFEmailParser;
@@ -36,8 +38,14 @@ import org.apache.airavata.gfac.monitor.email.parser.UGEEmailParser;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
import org.apache.airavata.model.messaging.event.JobIdentifier;
import org.apache.airavata.model.messaging.event.JobStatusChangeRequestEvent;
+import org.apache.airavata.model.workspace.experiment.ActionableGroup;
+import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
+import org.apache.airavata.model.workspace.experiment.ErrorCategory;
+import org.apache.airavata.model.workspace.experiment.ErrorDetails;
import org.apache.airavata.model.workspace.experiment.JobState;
import org.apache.airavata.model.workspace.experiment.JobStatus;
+import org.apache.airavata.registry.cpi.ChildDataType;
+import org.apache.airavata.registry.cpi.Registry;
import javax.mail.Address;
import javax.mail.Flags;
@@ -50,6 +58,7 @@ import javax.mail.Store;
import javax.mail.search.FlagTerm;
import javax.mail.search.SearchTerm;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -283,6 +292,11 @@ public class EmailBasedMonitor implements Runnable{
jobMonitorMap.remove(jobStatusResult.getJobId());
runOutHandlers = true;
log.info("[EJM]: Job failed email received , removed job from job monitoring. " + jobDetails);
+ try {
+ GFacUtils.saveErrorDetails(jEC,"Job runs on remote compute resource failed", CorrectiveAction.RETRY_SUBMISSION, ErrorCategory.APPLICATION_FAILURE);
+ } catch (GFacException e) {
+ log.info("[EJM]: Error while saving error details for jobId:{}, expId: {}", jEC.getJobDetails().getJobID(), jEC.getExperimentID());
+ }
}else if (resultState == JobState.CANCELED) {
jobMonitorMap.remove(jobStatusResult.getJobId());
runOutHandlers = false; // Do we need to run out handlers in canceled case?
http://git-wip-us.apache.org/repos/asf/airavata/blob/632d6b98/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
index ec8829a..a492a6f 100644
--- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
+++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
@@ -189,8 +189,10 @@ public class SSHProvider extends AbstractProvider {
}
if (jobID == null || jobID.isEmpty()) {
- log.error("expId:" + jobExecutionContext.getExperimentID() + " Couldn't find remote jobId for JobName:"
- + jobDetails.getJobName() + ", both submit and verify steps doesn't return a valid JobId. Hence changing task state to Failed");
+ String msg = "expId:" + jobExecutionContext.getExperimentID() + " Couldn't find remote jobId for JobName:"
+ + jobDetails.getJobName() + ", both submit and verify steps doesn't return a valid JobId. Hence changing experiment state to Failed";
+ log.error(msg);
+ GFacUtils.saveErrorDetails(jobExecutionContext, msg, CorrectiveAction.CONTACT_SUPPORT , ErrorCategory.AIRAVATA_INTERNAL_ERROR);
GFacUtils.publishTaskStatus(jobExecutionContext, monitorPublisher, TaskState.FAILED);
return;
}