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/08/08 17:31:43 UTC

svn commit: r1837665 - /uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxProcessMetricsProcessor.java

Author: cwiklik
Date: Wed Aug  8 17:31:43 2018
New Revision: 1837665

URL: http://svn.apache.org/viewvc?rev=1837665&view=rev
Log:
UIMA-5852 Modify to stop process metrics collector if process is no longer running

Modified:
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxProcessMetricsProcessor.java

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxProcessMetricsProcessor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxProcessMetricsProcessor.java?rev=1837665&r1=1837664&r2=1837665&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxProcessMetricsProcessor.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxProcessMetricsProcessor.java Wed Aug  8 17:31:43 2018
@@ -353,7 +353,18 @@ public class LinuxProcessMetricsProcesso
 		// if process is stopping or already dead dont collect metrics. The
 		// Camel route has just been stopped.
 		if (closed || !processIsActive()) {
- 		    logger.info("LinuxProcessMetricsProcessor.process",	null,"Process with PID:"+process.getPID() +" not in Running or Initializing state. Returning");	
+ 		    logger.info("LinuxProcessMetricsProcessor.process",	null,"Process with PID:"+process.getPID() +" not in Running or Initializing state. Terminating Process Metrics Collector");	
+ 		    // Spin a thread to terminate Camel route which called this processor.
+ 		    // This thread will stop the route since the process for which metrics
+ 		    // collection was started is no longer running. This is a defensive
+ 		    // measure in cases when a route is not stopped as part of process 
+ 		    // deallocation. 
+ 		    Thread t = new Thread( new Runnable() {
+ 		    	public void run() {
+ 		    		agent.onProcessExit(process);
+ 		    	}
+ 		    });
+ 		    t.start();
  		    return;
 		}
 		try {