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/03/29 16:00:07 UTC

svn commit: r1669910 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container: common/ jd/fsm/wi/ jd/timeout/

Author: degenaro
Date: Sun Mar 29 14:00:07 2015
New Revision: 1669910

URL: http://svn.apache.org/r1669910
Log:
UIMA-4313 DUCC Job Driver (JD) sometimes fails to cancel timers for Ack/End

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckTimeout.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessVolunteered.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutManager.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java Sun Mar 29 14:00:07 2015
@@ -21,6 +21,8 @@ package org.apache.uima.ducc.container.c
 public class Standardize {
 
 	public enum Label {
+		tasks,
+		futures,
 		collectionReaderCfg,
 		collectionReaderXml,
 		userClasspath,

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckTimeout.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckTimeout.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckTimeout.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckTimeout.java Sun Mar 29 14:00:07 2015
@@ -31,6 +31,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerProcess;
+import org.apache.uima.ducc.container.jd.timeout.TimeoutManager;
 import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.jd.wi.WiTracker;
@@ -47,10 +48,11 @@ public class ActionAckTimeout extends Ac
 	
 	private void preemptWorkItem(IActionData actionData, CasManager cm, IMetaCas metaCas) {
 		String location = "preemptWorkItem";
-		cm.putMetaCas(metaCas, RetryReason.TimeoutRetry);
-		cm.getCasManagerStats().incEndRetry();
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().cancelTimer(actionData);
+		cm.putMetaCas(metaCas, RetryReason.TimeoutRetry);
+		cm.getCasManagerStats().incEndRetry();
 	}
 	
 	@Override

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java Sun Mar 29 14:00:07 2015
@@ -90,17 +90,19 @@ public class ActionEnd extends Action im
 	
 	private void retryWorkItem(IActionData actionData, CasManager cm, IMetaCas metaCas) {
 		String location = "retryWorkItem";
-		cm.putMetaCas(metaCas, RetryReason.UserErrorRetry);
-		cm.getCasManagerStats().incEndRetry();
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().cancelTimer(actionData);
+		cm.putMetaCas(metaCas, RetryReason.UserErrorRetry);
+		cm.getCasManagerStats().incEndRetry();
 	}
 	
 	private void killWorkItem(IActionData actionData, CasManager cm) {
 		String location = "killWorkItem";
-		cm.getCasManagerStats().incEndFailure();
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().cancelTimer(actionData);
+		cm.getCasManagerStats().incEndFailure();
 		checkEnded(actionData, cm);
 	}
 	

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndTimeout.java Sun Mar 29 14:00:07 2015
@@ -31,6 +31,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerProcess;
+import org.apache.uima.ducc.container.jd.timeout.TimeoutManager;
 import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.jd.wi.WiTracker;
@@ -47,10 +48,11 @@ public class ActionEndTimeout extends Ac
 	
 	private void preemptWorkItem(IActionData actionData, CasManager cm, IMetaCas metaCas) {
 		String location = "preemptWorkItem";
-		cm.putMetaCas(metaCas, RetryReason.TimeoutRetry);
-		cm.getCasManagerStats().incEndRetry();
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().cancelTimer(actionData);
+		cm.putMetaCas(metaCas, RetryReason.TimeoutRetry);
+		cm.getCasManagerStats().incEndRetry();	
 	}
 	
 	@Override

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java Sun Mar 29 14:00:07 2015
@@ -34,6 +34,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverErrorHandler;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerProcess;
+import org.apache.uima.ducc.container.jd.timeout.TimeoutManager;
 import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.net.iface.IMetaCas;
@@ -56,6 +57,7 @@ public class ActionProcessFailure extend
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
 		//
+		TimeoutManager.getInstance().cancelTimer(actionData);
 		cm.putMetaCas(metaCas, RetryReason.ProcessDown);
 		cm.getCasManagerStats().incEndRetry();
 		JobDriver jd = JobDriver.getInstance();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java Sun Mar 29 14:00:07 2015
@@ -31,6 +31,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerProcess;
+import org.apache.uima.ducc.container.jd.timeout.TimeoutManager;
 import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.net.iface.IMetaCas;
@@ -46,10 +47,11 @@ public class ActionProcessPreempt extend
 	
 	private void preemptWorkItem(IActionData actionData, CasManager cm, IMetaCas metaCas) {
 		String location = "preemptWorkItem";
-		cm.putMetaCas(metaCas, RetryReason.ProcessPreempt);
-		cm.getCasManagerStats().incEndRetry();
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().cancelTimer(actionData);
+		cm.putMetaCas(metaCas, RetryReason.ProcessPreempt);
+		cm.getCasManagerStats().incEndRetry();
 	}
 	
 	@Override

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessVolunteered.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessVolunteered.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessVolunteered.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessVolunteered.java Sun Mar 29 14:00:07 2015
@@ -31,6 +31,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
 import org.apache.uima.ducc.container.jd.log.LoggerHelper;
 import org.apache.uima.ducc.container.jd.mh.iface.remote.IRemoteWorkerProcess;
+import org.apache.uima.ducc.container.jd.timeout.TimeoutManager;
 import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.net.iface.IMetaCas;
@@ -46,10 +47,11 @@ public class ActionProcessVolunteered ex
 	
 	private void preemptWorkItem(IActionData actionData, CasManager cm, IMetaCas metaCas) {
 		String location = "preemptWorkItem";
-		cm.putMetaCas(metaCas, RetryReason.ProcessVolunteered);
-		cm.getCasManagerStats().incEndRetry();
 		MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
 		logger.info(location, ILogger.null_id, mb.toString());
+		TimeoutManager.getInstance().cancelTimer(actionData);
+		cm.putMetaCas(metaCas, RetryReason.ProcessVolunteered);
+		cm.getCasManagerStats().incEndRetry();
 	}
 	
 	@Override

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutManager.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/ITimeoutManager.java Sun Mar 29 14:00:07 2015
@@ -29,4 +29,5 @@ public interface ITimeoutManager {
 	public void receivedEnd(IActionData actionData);
 	
 	public void timeout(IActionData actionData);
+	public void cancelTimer(IActionData actionData);
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java?rev=1669910&r1=1669909&r2=1669910&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/timeout/TimeoutManager.java Sun Mar 29 14:00:07 2015
@@ -125,6 +125,21 @@ public class TimeoutManager implements I
 		}
 	}
 
+	@Override
+	public void cancelTimer(IActionData actionData) {
+		String location = "cancelTimer";
+		try {
+			MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+			logger.debug(location, ILogger.null_id, mb.toString());
+			IWorkItem wi = actionData.getWorkItem();
+			IFsm fsm = wi.getFsm();
+			unregister(fsm);
+		}
+		catch(Exception e) {
+			logger.error(location, ILogger.null_id, e);
+		}
+	}
+	
 	private void register(IFsm fsm, ITimeoutTask timeoutTask) {
 		String location = "register";
 		try {
@@ -137,6 +152,8 @@ public class TimeoutManager implements I
 			//
 			IActionData actionData = timeoutTask.getActionData();
 			MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+			mb.append(Standardize.Label.futures.get()+mapFuture.size());
+			mb.append(Standardize.Label.tasks.get()+mapTask.size());
 			logger.debug(location, ILogger.null_id, mb.toString());
 		}
 		catch(Exception e) {
@@ -155,8 +172,16 @@ public class TimeoutManager implements I
 			if(timeoutTask != null) {
 				IActionData actionData = timeoutTask.getActionData();
 				MessageBuffer mb = LoggerHelper.getMessageBuffer(actionData);
+				mb.append(Standardize.Label.futures.get()+mapFuture.size());
+				mb.append(Standardize.Label.tasks.get()+mapTask.size());
 				logger.debug(location, ILogger.null_id, mb.toString());
 			}
+			else {
+				MessageBuffer mb = new MessageBuffer();
+				mb.append(Standardize.Label.futures.get()+mapFuture.size());
+				mb.append(Standardize.Label.tasks.get()+mapTask.size());
+				logger.trace(location, ILogger.null_id, mb.toString());
+			}
 		}	
 		catch(Exception e) {
 			logger.error(location, ILogger.null_id, e);