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 2016/11/10 18:51:40 UTC
svn commit: r1769182 - in
/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent:
NodeAgent.java launcher/CGroupsManager.java
Author: cwiklik
Date: Thu Nov 10 18:51:40 2016
New Revision: 1769182
URL: http://svn.apache.org/viewvc?rev=1769182&view=rev
Log:
UIMA-5157 modified to kill all processes found in cgroups still running while an agent is stopping
Modified:
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java?rev=1769182&r1=1769181&r2=1769182&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java Thu Nov 10 18:51:40 2016
@@ -350,7 +350,7 @@ public class NodeAgent extends AbstractD
if ( useCgroups ) {
try {
// remove stale CGroups
- cgroupsManager.cleanupOnStartup();
+ cgroupsManager.cleanup();
} catch (Exception e) {
logger.error("nodeAgent", null, e);
useCgroups = false;
@@ -1872,6 +1872,10 @@ public class NodeAgent extends AbstractD
DuccEvent duccEvent = new NodeInventoryUpdateDuccEvent(emptyMap,getLastORSequence(), getIdentity());
inventoryDispatcher.dispatch(duccEvent);
logger.info("stop", null, "Agent published final inventory");
+
+ // Since SIGTERM may not be enough to take down a process, use cgroups to find
+ // any process still standing and do hard kill
+ cgroupsManager.cleanup();
// Self destruct thread in case we loose AMQ broker and AMQ listener gets into retry
// mode trying to recover a connection
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java?rev=1769182&r1=1769181&r2=1769182&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java Thu Nov 10 18:51:40 2016
@@ -251,7 +251,7 @@ public class CGroupsManager {
*
* @throws Exception
*/
- public void cleanupOnStartup() throws Exception {
+ public void cleanup() throws Exception {
Set<NodeProcessInfo> processes = getProcessesOnNode();
// Match any folder under /cgroup/ducc that has syntax
@@ -277,7 +277,7 @@ public class CGroupsManager {
String[] pids = readPids(f);
if ( pids != null && pids.length > 0 ) {
- agentLogger.info("cleanupOnStartup", null,"Agent found "+pids.length+" cgroup proceses still active after Agent restart. Proceeding to remove stale processes");
+ agentLogger.info("cleanupOnStartup", null,"Agent found "+pids.length+" cgroup proceses still active. Proceeding to remove running processes");
}
int zombieCount=0;
@@ -332,6 +332,8 @@ public class CGroupsManager {
} else {
agentLogger.info("cleanupOnStartup", null,"CGroup "+cgroupFolder+" Contains Zombie Processing. Not Removing the Container");
}
+ } catch (FileNotFoundException e) {
+ // noop. Cgroup may have been removed already
} catch (Exception e) {
agentLogger.error("cleanupOnStartup", null, e);
}