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 2013/03/22 19:32:48 UTC
svn commit: r1459919 - in /uima/sandbox/uima-ducc/trunk:
uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/
uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/
Author: degenaro
Date: Fri Mar 22 18:32:48 2013
New Revision: 1459919
URL: http://svn.apache.org/r1459919
Log:
UIMA-2769 DUCC support for Managed Reservations with Reason of ProgramExit and hover for code
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccCompletionType.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java?rev=1459919&r1=1459918&r2=1459919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java Fri Mar 22 18:32:48 2013
@@ -297,6 +297,8 @@ public class ProcessAccounting {
process.setCpuTime(inventoryProcess.getCpuTime());
logger.trace(methodName, job.getDuccId(), process.getDuccId(), "Cpu Time:"+process.getCpuTime());
logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process state")+process.getProcessState());
+ process.setProcessExitCode(inventoryProcess.getProcessExitCode());
+ logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process exit code")+process.getProcessExitCode());
break;
}
}
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=1459919&r1=1459918&r2=1459919&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 Fri Mar 22 18:32:48 2013
@@ -1135,7 +1135,7 @@ public class StateManager {
OrchestratorCommonArea.getInstance().getProcessAccounting().deallocate(service,ProcessDeallocationType.Stopped);
}
if(!service.hasAliveProcess()) {
- completeJob(service, new Rationale("state manager reported no viable service process exists, type="+processType));
+ completeManagedReservation(service, new Rationale("state manager reported no viable service process exists, type="+processType));
}
break;
case Service:
@@ -1200,7 +1200,57 @@ public class StateManager {
logger.trace(methodName, null, messages.fetch("exit"));
}
+ private void advanceToCompleted(DuccWorkJob job) {
+ switch(job.getJobState()) {
+ case Completing:
+ case Completed:
+ break;
+ default:
+ if(job.getProcessMap().getAliveProcessCount() == 0) {
+ stateJobAccounting.stateChange(job, JobState.Completing);
+ }
+ }
+ }
+
+ private void completeManagedReservation(DuccWorkJob service, IRationale rationale) {
+ String location = "completeManagedReservation";
+ DuccId jobid = null;
+ try {
+
+ jobid = service.getDuccId();
+ Map<DuccId, IDuccProcess> map = service.getProcessMap().getMap();
+ int size = map.size();
+ if(size != 1) {
+ logger.warn(location, jobid, "size: "+size);
+ completeJob(service, rationale);
+ }
+ else {
+ Iterator<DuccId> iterator = map.keySet().iterator();
+ while(iterator.hasNext()) {
+ DuccId key = iterator.next();
+ IDuccProcess process = map.get(key);
+ int code = process.getProcessExitCode();
+ IRationale exitCode = new Rationale("code="+code);
+ switch(service.getCompletionType()) {
+ case Undefined:
+ service.setCompletion(JobCompletionType.ProgramExit, exitCode);
+ service.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
+ break;
+ }
+ advanceToCompleted(service);
+ break;
+ }
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, jobid, e);
+ completeJob(service, rationale);
+ }
+ }
+
private void completeJob(DuccWorkJob job, IRationale rationale) {
+ String location = "completeJob";
+ DuccId jobid = null;
switch(job.getCompletionType()) {
case Undefined:
job.setCompletion(JobCompletionType.EndOfJob, rationale);
@@ -1219,21 +1269,14 @@ public class StateManager {
}
}
catch(Exception e) {
+ logger.error(location, jobid, e);
}
}
break;
default:
break;
}
- switch(job.getJobState()) {
- case Completing:
- case Completed:
- break;
- default:
- if(job.getProcessMap().getAliveProcessCount() == 0) {
- stateJobAccounting.stateChange(job, JobState.Completing);
- }
- }
+ advanceToCompleted(job);
}
public void jobTerminate(IDuccWorkJob job, JobCompletionType jobCompletionType, IRationale rationale, ProcessDeallocationType processDeallocationType) {
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccCompletionType.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccCompletionType.java?rev=1459919&r1=1459918&r2=1459919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccCompletionType.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IDuccCompletionType.java Fri Mar 22 18:32:48 2013
@@ -41,6 +41,9 @@ public interface IDuccCompletionType ext
ExcessiveProcessFailures, // Job was terminated by health monitor - excessive process failures
ProcessInitializationFailure, // Job was terminated by health monitor - (excessive) process initialization failure
ProcessFailure, // Job was terminated by health monitor - (excessive) process failure
+
+ ProgramExit, // Managed Resource exited
+
Undefined // None of the above
;