You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2014/07/10 19:01:42 UTC

svn commit: r1609504 - /uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java

Author: challngr
Date: Thu Jul 10 17:01:41 2014
New Revision: 1609504

URL: http://svn.apache.org/r1609504
Log:
UIMA-3939 Prevent share count from going negative during node failure.  Sigh.

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java?rev=1609504&r1=1609503&r2=1609504&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/scheduler/NodePool.java Thu Jul 10 17:01:41 2014
@@ -797,9 +797,11 @@ class NodePool
                 mlist = new HashMap<Node, Machine>();
                 machinesByOrder.put(order, mlist);
             }
-            mlist.put(m.key(), m);        
+            mlist.put(m.key(), m);     
+   
+            total_shares += order;     //      UIMA-3939
 
-            logger.info(methodName, null, "Node ", m.getId(), " was unresponsive. Reactivating.");
+            logger.info(methodName, null, "Nodepool:", id, "Host reactivated ", m.getId(), String.format("shares %2d total %4d:", order, total_shares), m.toString());
             return m;
         }
 
@@ -821,7 +823,7 @@ class NodePool
         }
         mlist.put(machine.key(), machine);        
 
-        logger.info(methodName, null, "Machine added to nodepool", id, ": ", machine.getId(), String.format("shares %2d total %4d:", order, total_shares), machine.toString());
+        logger.info(methodName, null, "Nodepool:", id, "Host added:", id, ": ", machine.getId(), String.format("shares %2d total %4d:", order, total_shares), machine.toString());
         updated++;
         
         return machine;
@@ -831,9 +833,8 @@ class NodePool
     {
         String methodName = "nodeLeaves";
 
-        logger.info(methodName, null, "Node leaves:", m.getId());
         if ( allMachines.containsKey(m.key()) ) {
-            logger.info(methodName, null, "Looking for shares to clear", m.getId());
+            logger.info(methodName, null, "Nodepool:", id, "Host disabled:", m.getId(), "Looking for shares to clear");
 
             int order = m.getShareOrder();
             String name = m.getId();
@@ -845,13 +846,14 @@ class NodePool
 
                 if ( j.getDuccType() == DuccType.Reservation ) {
                     // UIMA-3614.  Only actual reservation is left intact
-                    logger.info(methodName, j.getId(), "Not purging job on dead/offline node, job type:", j.getDuccType());
+                    logger.info(methodName, null, "Nodepool:", id, "Host dead/offline:", m.getId(), "Not purging", j.getDuccType());
                     break;
                 }
 
-                logger.info(methodName, j.getId(), "Purging job on dead/offline node, job type:", j.getDuccType());
+                logger.info(methodName, j.getId(), "Nodepool:", id, "Purge", j.getDuccType(), "on dead/offline:", m.getId());
                 j.shrinkByOne(s);
                 nPendingByOrder[order]++;
+
                 s.purge();          // This bet tells OR not to wait for confirmation from the agent
             }
 
@@ -867,6 +869,7 @@ class NodePool
             }
             machinesByName.remove(name);
             machinesByIp.remove(ip);
+            logger.info(methodName, null, "Nodepool:", id, "Node leaves:", m.getId(), "total shares:", total_shares);
         } else {
             for ( NodePool np : children.values() ) {
                 np.nodeLeaves(m);