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 2014/04/11 21:53:56 UTC

svn commit: r1586762 - /uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java

Author: cwiklik
Date: Fri Apr 11 19:53:56 2014
New Revision: 1586762

URL: http://svn.apache.org/r1586762
Log:
UIMA-3737 dont remove a cgroup if it has zombie processes as it may lead to a thread hang

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java?rev=1586762&r1=1586761&r2=1586762&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java Fri Apr 11 19:53:56 2014
@@ -182,10 +182,15 @@ public class CGroupsManager {
 							}
 						}
 					}
-					
-					destroyContainer(cgroupFolder);
-					agentLogger.info("cleanupOnStartup", null,
-							"--- Agent Removed Empty CGroup:" + cgroupFolder);
+					// Don't remove CGroups if there are zombie processes there. Otherwise, attempt
+					// to remove the CGroup may hang a thread.
+					if ( zombieCount == 0 )  {  // no zombies in the container
+	 					destroyContainer(cgroupFolder);
+						agentLogger.info("cleanupOnStartup", null,
+								"--- Agent Removed Empty CGroup:" + cgroupFolder);
+					} else {
+						agentLogger.info("cleanupOnStartup", null,"CGroup "+cgroupFolder+" Contains Zombie Processing. Not Removing the Container");
+					}
 				} catch (Exception e) {
 					agentLogger.error("cleanupOnStartup", null, e);
 				}