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 2015/07/07 17:10:46 UTC

svn commit: r1689696 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws: MachineInfo.java WebServerComponent.java

Author: degenaro
Date: Tue Jul  7 15:10:46 2015
New Revision: 1689696

URL: http://svn.apache.org/r1689696
Log:
UIMA-4503 DUCC Web Server (WS) incorrectly reports Agent as "up"

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/WebServerComponent.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java?rev=1689696&r1=1689695&r2=1689696&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java Tue Jul  7 15:10:46 2015
@@ -36,7 +36,7 @@ public class MachineInfo implements Comp
 	private static DuccId jobid = null;
 	
 	private long down_fudge = 10;
-	private long DOWN_AFTER_SECONDS = WebServerComponent.updateInterval + down_fudge;
+	private long DOWN_AFTER_SECONDS = WebServerComponent.updateIntervalSeconds + down_fudge;
 	private long SECONDS_PER_MILLI = 1000;
 	
 	private String fileDef;
@@ -82,22 +82,23 @@ public class MachineInfo implements Comp
 	
 	private long getAgentMillisMIA() {
 		String location = "getAgentMillisMIA";
-		long secondsMIA = DOWN_AFTER_SECONDS*SECONDS_PER_MILLI;
+		long millisMIA = DOWN_AFTER_SECONDS*SECONDS_PER_MILLI;
 		Properties properties = DuccWebProperties.get();
 		String s_tolerance = properties.getProperty("ducc.rm.node.stability");
 		String s_rate = properties.getProperty("ducc.agent.node.metrics.publish.rate");
 		try {
 			long tolerance = Long.parseLong(s_tolerance.trim());
 			long rate = Long.parseLong(s_rate.trim());
-			secondsMIA = (tolerance * rate) / 1000;
+			long secondsRM = (tolerance * rate) / SECONDS_PER_MILLI;
+			logger.trace(location, jobid, "default:"+DOWN_AFTER_SECONDS+" "+"secondsRM:"+secondsRM);
+			if(DOWN_AFTER_SECONDS < secondsRM) {
+				millisMIA = secondsRM * SECONDS_PER_MILLI;
+			}
 		}
 		catch(Throwable t) {
 			logger.warn(location, jobid, t);
 		}
-		if(secondsMIA < DOWN_AFTER_SECONDS) {
-			secondsMIA = DOWN_AFTER_SECONDS;
-		}
-		return secondsMIA;
+		return millisMIA;
 	}
 	
 	private String calculateStatus() {
@@ -229,8 +230,11 @@ public class MachineInfo implements Comp
 		this.pubSizeMax = value;
 	}
 	
-	public boolean isExpired(long seconds) {
-		return getElapsedSeconds() > seconds;
+	public boolean isExpired(long millisLimit) {
+		String location = "isExpired";
+		long millisElapsed = getElapsedSeconds() * 1000;
+		logger.trace(location, jobid, "millisElapsed:"+millisElapsed+" "+"millisLimit:"+millisLimit);
+		return millisElapsed > millisLimit;
 	}
 	
 	public long getElapsedSeconds() {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/WebServerComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/WebServerComponent.java?rev=1689696&r1=1689695&r2=1689696&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/WebServerComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/WebServerComponent.java Tue Jul  7 15:10:46 2015
@@ -59,7 +59,8 @@ implements IWebServer {
 	private static AtomicInteger reservationCount = new AtomicInteger(0);
 	
 	private static AtomicLong updateLast = new AtomicLong(System.currentTimeMillis());
-	public static long updateInterval = 60*1000;
+	public static long updateIntervalSeconds = 60;
+	public static long updateIntervalMilliSeconds = updateIntervalSeconds*1000;
 	private static AtomicLong updateCount = new AtomicLong(0);
 	private static long warmup = 10;
 	
@@ -145,9 +146,9 @@ implements IWebServer {
 
 	private void sortMachines() {
 		long last = updateLast.get();
-		long deadline = last + updateInterval;
+		long deadline = last + updateIntervalMilliSeconds;
 		if(updateCount.getAndIncrement() < warmup) {
-			deadline = last + updateInterval/10;
+			deadline = last + updateIntervalMilliSeconds/10;
 		}
 		long now = System.currentTimeMillis();
 		if(now > deadline) {