You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2018/06/19 13:38:57 UTC

svn commit: r1833844 - in /uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher: CommandExecutor.java DefunctProcessDetector.java DuccCommandExecutor.java

Author: cwiklik
Date: Tue Jun 19 13:38:57 2018
New Revision: 1833844

URL: http://svn.apache.org/viewvc?rev=1833844&view=rev
Log:
UIMA-5794 stop processes with status=FAILED_INITIALIZATION

Modified:
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DefunctProcessDetector.java
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java?rev=1833844&r1=1833843&r2=1833844&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java Tue Jun 19 13:38:57 2018
@@ -90,6 +90,8 @@ public abstract class CommandExecutor im
 				if ( !((ManagedProcess) managedProcess).getDuccProcess()
 				.getProcessState().equals(ProcessState.Stopped) ||
 				!((ManagedProcess) managedProcess).getDuccProcess()
+				.getProcessState().equals(ProcessState.Stopping) ||
+				!((ManagedProcess) managedProcess).getDuccProcess()
 				.getProcessState().equals(ProcessState.Failed) ||
 				!((ManagedProcess) managedProcess).getDuccProcess()
 				.getProcessState().equals(ProcessState.FailedInitialization)
@@ -101,12 +103,7 @@ public abstract class CommandExecutor im
 				((ManagedProcess) managedProcess).setPid(String.valueOf(pid));
 				((ManagedProcess) managedProcess)
 				     .getDuccProcess().setPID(String.valueOf(pid));
-				logger.info(methodName, null,
-						">>>>>>>>> PID:"
-								+ String.valueOf(pid)
-								+ " Process State:"
-								+ ((ManagedProcess) managedProcess)
-										.getDuccProcess().getProcessState());
+
 				try {
 					synchronized (this) {
 						// wait for 5 seconds before starting the camel route
@@ -115,6 +112,22 @@ public abstract class CommandExecutor im
 						// enough time for the process to start.
 						wait(5000);
 					}
+				        logger.info(methodName, null,
+						">>>>>>>>> PID:"
+								+ String.valueOf(pid)
+								+ " Process State:"
+								+ ((ManagedProcess) managedProcess)
+										.getDuccProcess().getProcessState());
+
+				if ( !((ManagedProcess) managedProcess).getDuccProcess()
+				       .getProcessState().equals(ProcessState.Stopped) &&
+				     !((ManagedProcess) managedProcess).getDuccProcess()
+				       .getProcessState().equals(ProcessState.Stopping) &&
+				     !((ManagedProcess) managedProcess).getDuccProcess()
+				       .getProcessState().equals(ProcessState.Failed) &&
+				     !((ManagedProcess) managedProcess).getDuccProcess()
+				       .getProcessState().equals(ProcessState.FailedInitialization)
+						) {
 					RouteBuilder rb = agent.new ProcessMemoryUsageRoute(agent,
 							((ManagedProcess) managedProcess).getDuccProcess(),
 							(ManagedProcess) managedProcess);
@@ -135,6 +148,30 @@ public abstract class CommandExecutor im
 							"Started Process Metric Gathering Thread For PID:"
 									+ String.valueOf(pid));
 
+
+				}
+
+				/*
+					RouteBuilder rb = agent.new ProcessMemoryUsageRoute(agent,
+							((ManagedProcess) managedProcess).getDuccProcess(),
+							(ManagedProcess) managedProcess);
+					agent.getContext().addRoutes(rb);
+					agent.getContext().startRoute(String.valueOf(pid));
+					logger.info(methodName, null,
+							"Started Process Metric Gathering Thread For PID:"
+									+ String.valueOf(pid));
+
+					StringBuffer sb = new StringBuffer();
+					for (Route route : agent.getContext().getRoutes()) {
+						sb.append("Camel Context - RouteId:" + route.getId()
+								+ "\n");
+					}
+					logger.info(methodName, null, sb.toString());
+
+					logger.info(methodName, null,
+							"Started Process Metric Gathering Thread For PID:"
+									+ String.valueOf(pid));
+				*/
 				} catch (Exception e) {
 					logger.error("postExecStep", null, e);
 				}

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DefunctProcessDetector.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DefunctProcessDetector.java?rev=1833844&r1=1833843&r2=1833844&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DefunctProcessDetector.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DefunctProcessDetector.java Tue Jun 19 13:38:57 2018
@@ -58,7 +58,8 @@ public class DefunctProcessDetector impl
 				// process is a zombie
 				zombie = (line.indexOf("defunct") > 0);
 				if ( zombie ) {
-					break;
+   				   logger.info("DefunctProcessDetector.isDefunctProcess", null, "Process with PID:"+pid+" Is Defunct - OS reports:"+line);
+				    break;
 				}
 			}
 		} catch (Exception e) {

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java?rev=1833844&r1=1833843&r2=1833844&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java Tue Jun 19 13:38:57 2018
@@ -291,7 +291,7 @@ public class DuccCommandExecutor extends
 
 			}
 			return managedProcess;
-		} catch (Exception e) {
+		} catch (Throwable e) {
 			if (((ManagedProcess) super.managedProcess).getDuccProcess() != null) {
 				DuccId duccId = ((ManagedProcess) super.managedProcess)
 						.getDuccId();
@@ -300,6 +300,7 @@ public class DuccCommandExecutor extends
 								.getDuccProcess().getDuccId(), e,
 						new Object[] {});
 			}
+			logger.error(methodName, null, e);
 			throw e;
 		}
 	}
@@ -312,6 +313,8 @@ public class DuccCommandExecutor extends
 				((ManagedProcess) managedProcess).getDuccProcess().getProcessState()
 				.equals(ProcessState.Starting) ||
 				((ManagedProcess) managedProcess).getDuccProcess().getProcessState()
+				.equals(ProcessState.Stopping) ||
+				((ManagedProcess) managedProcess).getDuccProcess().getProcessState()
 				.equals(ProcessState.Started)
 				);
 	}
@@ -746,6 +749,7 @@ public class DuccCommandExecutor extends
 					} else {
 					  cmdLine.addOption("-Dducc.deploy.components=uima-as");
 					  ((JavaCommandLine)cmdLine).setClassName("org.apache.uima.ducc.common.main.DuccService");
+					  // ((JavaCommandLine)cmdLine).setClassName("org.apache.uima.ducc.ps.service.main.ServiceWrapper");
 					}
 					break;
 				}