You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2017/01/31 14:27:59 UTC

svn commit: r1781087 - in /uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common: DuccProcess.java DuccProcessConcurrentMap.java DuccProcessMap.java

Author: degenaro
Date: Tue Jan 31 14:27:59 2017
New Revision: 1781087

URL: http://svn.apache.org/viewvc?rev=1781087&view=rev
Log:
UIMA-5279 DUCC Web Server (WS) may show incorrect values for PgIn and Swap on mixed cgroup cluster

Modified:
    uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java
    uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessConcurrentMap.java
    uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java

Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java?rev=1781087&r1=1781086&r2=1781087&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcess.java Tue Jan 31 14:27:59 2017
@@ -34,6 +34,19 @@ import org.apache.uima.ducc.transport.ev
 
 public class DuccProcess implements IDuccProcess {
 
+	public enum SpecialValue { 
+		Unknown(-100),
+		Unavailable(-1),
+		;
+		long sv = 0;
+		private SpecialValue(long value) {
+			sv = value;
+		}
+		long getlong() {
+			return sv;
+		}
+	}
+	
 	/**
 	 * please increment this sUID when removing or modifying a field
 	 */
@@ -62,9 +75,9 @@ public class DuccProcess implements IDuc
 	private boolean initialized = false;
 	private int exitCode;
 	private CGroup cgroup;
-	private long majorFaults;
-	private long swapUsage;
-	private long swapUsageMax;
+	private long majorFaults = SpecialValue.Unknown.getlong();
+	private long swapUsage= SpecialValue.Unknown.getlong();
+	private long swapUsageMax= SpecialValue.Unknown.getlong();
 	private long wiMillisInvestment;
 	private long currentCPU;
 	

Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessConcurrentMap.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessConcurrentMap.java?rev=1781087&r1=1781086&r2=1781087&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessConcurrentMap.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessConcurrentMap.java Tue Jan 31 14:27:59 2017
@@ -28,6 +28,7 @@ import org.apache.uima.ducc.common.NodeI
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.Constants;
+import org.apache.uima.ducc.transport.event.common.DuccProcess.SpecialValue;
 import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
 
 public class DuccProcessConcurrentMap extends ConcurrentHashMap<DuccId,IDuccProcess> implements IDuccProcessMap {
@@ -350,12 +351,17 @@ public class DuccProcessConcurrentMap ex
 			while(iterator.hasNext()) {
 				IDuccProcess process = iterator.next();
 				long value = process.getMajorFaults();
-				if(value < 0) {
-					flagNoCgroup = true;
+				if(value == SpecialValue.Unknown.getlong()) {
+					// skip it
 				}
 				else {
-					flagCgroup = true;
-					retVal += value;
+					if(value < 0) {
+						flagNoCgroup = true;
+					}
+					else {
+						flagCgroup = true;
+						retVal += value;
+					}
 				}
 			}
 		}
@@ -388,12 +394,17 @@ public class DuccProcessConcurrentMap ex
 			while(iterator.hasNext()) {
 				IDuccProcess process = iterator.next();
 				double value = process.getSwapUsage();
-				if(value < 0) {
-					flagNoCgroup = true;
+				if(value == SpecialValue.Unknown.getlong()) {
+					// skip it
 				}
 				else {
-					flagCgroup = true;
-					retVal += value/Constants.GB;
+					if(value < 0) {
+						flagNoCgroup = true;
+					}
+					else {
+						flagCgroup = true;
+						retVal += value/Constants.GB;
+					}
 				}
 			}
 		}
@@ -431,12 +442,17 @@ public class DuccProcessConcurrentMap ex
 				while(iterator.hasNext()) {
 					IDuccProcess process = iterator.next();
 					double value = process.getSwapUsageMax();
-					if(value < 0) {
-						flagNoCgroup = true;
+					if(value == SpecialValue.Unknown.getlong()) {
+						// skip it
 					}
 					else {
-						flagCgroup = true;
-						retVal += value/Constants.GB;
+						if(value < 0) {
+							flagNoCgroup = true;
+						}
+						else {
+							flagCgroup = true;
+							retVal += value/Constants.GB;
+						}
 					}
 				}
 			}

Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java?rev=1781087&r1=1781086&r2=1781087&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java Tue Jan 31 14:27:59 2017
@@ -28,6 +28,7 @@ import org.apache.uima.ducc.common.NodeI
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.Constants;
+import org.apache.uima.ducc.transport.event.common.DuccProcess.SpecialValue;
 import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
 
 public class DuccProcessMap extends TreeMap<DuccId,IDuccProcess> implements IDuccProcessMap {
@@ -356,12 +357,17 @@ public class DuccProcessMap extends Tree
 			while(iterator.hasNext()) {
 				IDuccProcess process = iterator.next();
 				long value = process.getMajorFaults();
-				if(value < 0) {
-					flagNoCgroup = true;
+				if(value == SpecialValue.Unknown.getlong()) {
+					// skip it
 				}
 				else {
-					flagCgroup = true;
-					retVal += value;
+					if(value < 0) {
+						flagNoCgroup = true;
+					}
+					else {
+						flagCgroup = true;
+						retVal += value;
+					}
 				}
 			}
 		}
@@ -394,12 +400,17 @@ public class DuccProcessMap extends Tree
 			while(iterator.hasNext()) {
 				IDuccProcess process = iterator.next();
 				double value = process.getSwapUsage();
-				if(value < 0) {
-					flagNoCgroup = true;
+				if(value == SpecialValue.Unknown.getlong()) {
+					// skip it
 				}
 				else {
-					flagCgroup = true;
-					retVal += value/Constants.GB;
+					if(value < 0) {
+						flagNoCgroup = true;
+					}
+					else {
+						flagCgroup = true;
+						retVal += value/Constants.GB;
+					}
 				}
 			}
 		}
@@ -437,12 +448,17 @@ public class DuccProcessMap extends Tree
 				while(iterator.hasNext()) {
 					IDuccProcess process = iterator.next();
 					double value = process.getSwapUsageMax();
-					if(value < 0) {
-						flagNoCgroup = true;
+					if(value == SpecialValue.Unknown.getlong()) {
+						// skip it
 					}
 					else {
-						flagCgroup = true;
-						retVal += value/Constants.GB;
+						if(value < 0) {
+							flagNoCgroup = true;
+						}
+						else {
+							flagCgroup = true;
+							retVal += value/Constants.GB;
+						}
 					}
 				}
 			}