You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2015/03/05 14:14:36 UTC
svn commit: r1664338 -
/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
Author: degenaro
Date: Thu Mar 5 13:14:36 2015
New Revision: 1664338
URL: http://svn.apache.org/r1664338
Log:
UIMA-4069 DUCC Job Driver (JD) system classpath
honor startup initialization error limit
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java?rev=1664338&r1=1664337&r2=1664338&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java Thu Mar 5 13:14:36 2015
@@ -1559,6 +1559,39 @@ public class StateManager {
break;
case Job_Uima_AS_Process:
OrchestratorCommonArea.getInstance().getProcessAccounting().setStatus(inventoryProcess);
+ try {
+ if(!job.isInitialized()) {
+ IDuccProcessMap map = job.getProcessMap();
+ for(Entry<DuccId, IDuccProcess> entry : map.entrySet()) {
+ IDuccProcess process = entry.getValue();
+ StringBuffer sb = new StringBuffer();
+ sb.append("pid:"+process.getPID()+" ");
+ sb.append("state:"+process.getProcessState()+" ");
+ sb.append("reason:"+process.getReasonForStoppingProcess()+" ");
+ logger.info(methodName, job.getDuccId(), sb.toString());
+ }
+ long initFailureCount = job.getProcessInitFailureCount();
+ long startup_initialization_error_limit = DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_jd_startup_initialization_error_limit, 1);
+ if(initFailureCount >= startup_initialization_error_limit) {
+ String reason = "process inititialization failure count["+initFailureCount+"] meets startup initialization error limit["+startup_initialization_error_limit+"]";
+ logger.warn(methodName, job.getDuccId(), reason);
+ JobCompletionType jobCompletionType = JobCompletionType.CanceledBySystem;
+ Rationale rationale = new Rationale(reason);
+ ProcessDeallocationType processDeallocationType = ProcessDeallocationType.JobCanceled;
+ stateManager.jobTerminate(job, jobCompletionType, rationale, processDeallocationType);
+ }
+ else {
+ String reason = "process failure count["+initFailureCount+"] does not exceed startup initialization error limit["+startup_initialization_error_limit+"]";
+ logger.debug(methodName, job.getDuccId(), reason);
+ }
+ }
+ else {
+ logger.trace(methodName, job.getDuccId(), "job is initialized");
+ }
+ }
+ catch(Exception e) {
+ logger.error(methodName, jobId, e);
+ }
break;
}
// <UIMA-3923>