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/01/29 22:48:16 UTC

svn commit: r1655871 - /uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java

Author: degenaro
Date: Thu Jan 29 21:48:15 2015
New Revision: 1655871

URL: http://svn.apache.org/r1655871
Log:
UIMA-4069 DUCC Job Driver (JD) system classpath

Instrument OR to track excess capacity deallocations (via DEBUG logging flag)

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=1655871&r1=1655870&r2=1655871&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 Jan 29 21:48:15 2015
@@ -794,26 +794,44 @@ public class StateManager {
 	private boolean deallocateIdleProcesses(DuccWorkJob job, IDriverStatusReport jdStatusReport) {
 		String methodName = "deallocateIdleProcesses";
 		boolean retVal = false;
-		if(isDeallocatable(jdStatusReport)) {
-			IDuccProcessMap processMap = job.getProcessMap();
-			Iterator<DuccId> iterator = processMap.keySet().iterator();
-			boolean excessCapacity = isExcessCapacity(job, jdStatusReport);
-			while(iterator.hasNext() && excessCapacity) {
-				DuccId duccId = iterator.next();
-				IDuccProcess process = processMap.get(duccId);
-				if(!process.isDeallocated()) {
-					String nodeIP = process.getNodeIdentity().getIp();
-					String PID = process.getPID();
-					if(!jdStatusReport.isOperating(nodeIP, PID)) {
-						OrUtil.setResourceState(job, process, ResourceState.Deallocated);
-						process.setProcessDeallocationType(ProcessDeallocationType.Voluntary);
-						logger.info(methodName, job.getDuccId(), process.getDuccId(), "deallocated");
-						retVal = true;
-						excessCapacity = isExcessCapacity(job, jdStatusReport);
+		DuccId jobid = job.getDuccId();
+		try {
+			if(isDeallocatable(jdStatusReport)) {
+				IDuccProcessMap processMap = job.getProcessMap();
+				Iterator<DuccId> iterator = processMap.keySet().iterator();
+				boolean excessCapacity = isExcessCapacity(job, jdStatusReport);
+				int count = 0;
+				while(iterator.hasNext() && excessCapacity) {
+					count++;
+					DuccId duccId = iterator.next();
+					IDuccProcess process = processMap.get(duccId);
+					if(!process.isDeallocated()) {
+						String nodeIP = process.getNodeIdentity().getIp();
+						String PID = process.getPID();
+						if(!jdStatusReport.isOperating(nodeIP, PID)) {
+							OrUtil.setResourceState(job, process, ResourceState.Deallocated);
+							process.setProcessDeallocationType(ProcessDeallocationType.Voluntary);
+							logger.info(methodName, job.getDuccId(), process.getDuccId(), "deallocated");
+							retVal = true;
+							excessCapacity = isExcessCapacity(job, jdStatusReport);
+						}
+						else {
+							logger.debug(methodName, job.getDuccId(), process.getDuccId(), "operating");
+						}
+					}
+					else {
+						logger.trace(methodName, job.getDuccId(), process.getDuccId(), "already deallocated");
 					}
 				}
+				logger.trace(methodName, jobid, "count="+count);
+			}
+			else {
+				logger.debug(methodName, jobid, "not deallocatable");
 			}
 		}
+		catch(Exception e) {
+			logger.error(methodName, job.getDuccId(), e);
+		}
 		return retVal;
 	}