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 2019/06/25 20:59:44 UTC

svn commit: r1862087 - in /uima/uima-ducc/trunk: uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java

Author: degenaro
Date: Tue Jun 25 20:59:44 2019
New Revision: 1862087

URL: http://svn.apache.org/viewvc?rev=1862087&view=rev
Log:
UIMA-6077 DUCC stop_ducc -ag should cause RM to stop scheduling there

Modified:
    uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
    uima/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java

Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java?rev=1862087&r1=1862086&r2=1862087&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java Tue Jun 25 20:59:44 2019
@@ -24,6 +24,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.camel.CamelContext;
@@ -725,6 +726,42 @@ implements Orchestrator {
     	return dh;
     }
 	
+	private void diagnose(DuccHeadTransition dh_transition, String when) {
+		String methodName = "diagnose";
+		DuccWorkMap dwm = orchestratorCommonArea.getWorkMap();
+		Set<DuccId> keys = dwm.getJobKeySet();
+		if(keys.isEmpty()) {
+			logger.debug(methodName, null, "no jobs");
+		}
+		else {
+			for(DuccId key : keys) {
+				IDuccWork dw = dwm.findDuccWork(key);
+				IDuccWorkJob dwj = (IDuccWorkJob) dw;
+				if(dwj != null) {
+					IDuccProcessMap processMap = dwj.getProcessMap();
+					if(processMap != null) {
+						for(IDuccProcess process : processMap.values()) {
+							StringBuffer sb = new StringBuffer();
+							sb.append("head-state:"+dh_transition.name()+"="+when);
+							sb.append(" ");
+							sb.append("ducc-pid:"+process.getDuccId());
+							sb.append(" ");
+							sb.append("user:"+dwj.getStandardInfo().getUser());
+							sb.append(" ");
+							sb.append("node:"+process.getNode().getNodeIdentity().getCanonicalName());
+							sb.append(" ");
+							sb.append("pid:"+process.getPID());
+							logger.debug(methodName, dwj.getDuccId(), sb);
+						}
+					}
+				}
+				else {
+					logger.debug(methodName, key, "no job");
+				}
+			}
+		}	
+	}
+	
 	/**
 	 * Publish Orchestrator State
 	 */
@@ -745,10 +782,12 @@ implements Orchestrator {
 			logger.warn(methodName, jobid, "ducc head -> backup");
 			break;
 		case backup_to_master:
+			diagnose(dh_transition,"before");
 			OrchestratorCommonArea.getInstance().restart();
 			SystemEventsLogger.warn(IDuccLoggerComponents.abbrv_orchestrator, EventType.SWITCH_TO_MASTER.name(), "");
 			orchestratorStateDuccEvent.setDuccHeadState(DuccHeadState.master);
 			logger.warn(methodName, jobid, "ducc head -> master");
+			diagnose(dh_transition,"after");
 			break;
 		case master_to_master:
 			orchestratorStateDuccEvent.setDuccHeadState(DuccHeadState.master);

Modified: uima/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java?rev=1862087&r1=1862086&r2=1862087&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/JobManagerConverter.java Tue Jun 25 20:59:44 2019
@@ -1262,8 +1262,13 @@ public class JobManagerConverter
                             ProcessState state = proc.getProcessState();
                             Node n = proc.getNode();
                             if ( n == null ) {
-                                logger.info(methodName, w.getDuccId(), "   Process[", pid, "] state [", state, "] is complete[", proc.isComplete(), "] Node [N/A] mem[N/A");
-                            } else {
+                                logger.info(methodName, w.getDuccId(), "   Process[", pid, "] state [", state, "] is complete[", proc.isComplete(), "] Node [N/A] mem[N/A]");
+                            }
+                            else if( proc.isComplete() ) {
+                            	long mem = n .getNodeMetrics().getNodeMemory().getMemTotal();
+                            	logger.info(methodName, w.getDuccId(), "   Process[", pid, "] state [", state, "] is complete[", proc.isComplete(), "] Node [",n.getNodeIdentity().getCanonicalName() + "." + proc.getDuccId(),"] mem[", mem, "]");
+                            }
+                            else {
                                 long mem = n .getNodeMetrics().getNodeMemory().getMemTotal();
                                 logger.info(methodName, w.getDuccId(), 
                                             "   Process[", pid, 
@@ -1297,6 +1302,10 @@ public class JobManagerConverter
 
                         logger.info(methodName, w.getDuccId(), "Receive:", prefix, w.getDuccType(), w.getStateObject(), "processes[", rm.size(), "] Completed:", w.isCompleted());
                         
+                        if(w.isCompleted()) {
+                        	continue;
+                        }
+                        
                         for ( IDuccReservation r: rm.values()) {
                             Node n = r.getNode();                        
                             if ( n == null ) {