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 2016/03/29 21:19:00 UTC
svn commit: r1737034 - in /uima/sandbox/uima-ducc/trunk:
uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/
uima-ducc-user/src/main/java/org/apache/uima/ducc/
uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/
Author: degenaro
Date: Tue Mar 29 19:19:00 2016
New Revision: 1737034
URL: http://svn.apache.org/viewvc?rev=1737034&view=rev
Log:
UIMA-4879 DUCC Job Driver (WS) should terminate Job Process (JP) when workitem timeout occurs
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndAbstract.java
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionHelper.java
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/ErrorHandlerDirective.java
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndAbstract.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/ActionEndAbstract.java?rev=1737034&r1=1737033&r2=1737034&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndAbstract.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndAbstract.java Tue Mar 29 19:19:00 2016
@@ -22,6 +22,7 @@ import org.apache.uima.ducc.common.jd.fi
import org.apache.uima.ducc.container.common.MessageBuffer;
import org.apache.uima.ducc.container.common.MetaCasHelper;
import org.apache.uima.ducc.container.common.Standardize;
+import org.apache.uima.ducc.container.common.IJdConstants.DeallocateReason;
import org.apache.uima.ducc.container.common.fsm.iface.IAction;
import org.apache.uima.ducc.container.common.logger.IComponent;
import org.apache.uima.ducc.container.common.logger.ILogger;
@@ -48,6 +49,12 @@ public abstract class ActionEndAbstract
this.logger = logger;
}
+ private DeallocateReason getDeallocateReason(ProxyJobDriverDirective pjdd) {
+ // ToDo - determine reason (for now presume timeout)
+ DeallocateReason deallocateReason = DeallocateReason.WorkItemTimeout;
+ return deallocateReason;
+ }
+
protected void handleException(IActionData actionData, Object userException, String printableException) throws JobDriverException {
String location = "handleException";
if(true) {
@@ -101,6 +108,13 @@ public abstract class ActionEndAbstract
ActionHelper.killJob(logger, actionData, cm);
ActionHelper.killWorkItem(logger, actionData, cm);
}
+ else if(pjdd.isKillProcess()) {
+ wisk.error(seqNo);
+ pStats.error(wi);
+ DeallocateReason deallocateReason = getDeallocateReason(pjdd);
+ ActionHelper.killProcess(logger, actionData, cm, metaCas, wi, deallocateReason);
+ ActionHelper.killWorkItem(logger, actionData, cm);
+ }
else if(pjdd.isKillWorkItem()) {
wisk.error(seqNo);
pStats.error(wi);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionHelper.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/ActionHelper.java?rev=1737034&r1=1737033&r2=1737034&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionHelper.java Tue Mar 29 19:19:00 2016
@@ -18,6 +18,9 @@
*/
package org.apache.uima.ducc.container.jd.fsm.wi;
+import org.apache.uima.ducc.common.jd.files.workitem.IRemoteLocation;
+import org.apache.uima.ducc.common.jd.files.workitem.RemoteLocation;
+import org.apache.uima.ducc.container.common.IJdConstants.DeallocateReason;
import org.apache.uima.ducc.container.common.MessageBuffer;
import org.apache.uima.ducc.container.common.Standardize;
import org.apache.uima.ducc.container.common.logger.ILogger;
@@ -28,7 +31,10 @@ 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.ErrorLogger;
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.IWorkItem;
+import org.apache.uima.ducc.container.jd.wi.WiTracker;
import org.apache.uima.ducc.container.net.iface.IMetaCas;
import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.JdState;
@@ -104,8 +110,8 @@ public class ActionHelper {
// for example, very long running work items are not unnecessarily
// restarted from scratch.
- /*
- private static void killProcess(Logger logger, IActionData actionData, CasManager cm, IMetaCas metaCas, IWorkItem wi, DeallocateReason deallocateReason) {
+
+ protected static void killProcess(Logger logger, IActionData actionData, CasManager cm, IMetaCas metaCas, IWorkItem wi, DeallocateReason deallocateReason) {
String location = "killProcess";
WiTracker tracker = WiTracker.getInstance();
IRemoteWorkerProcess rwp = tracker.getRemoteWorkerProcess(wi);
@@ -126,7 +132,6 @@ public class ActionHelper {
logger.info(location, ILogger.null_id, mb.toString());
}
}
- */
protected static void killJob(Logger logger, IActionData actionData, CasManager cm) {
String location = "killJob";
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/ErrorHandlerDirective.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/ErrorHandlerDirective.java?rev=1737034&r1=1737033&r2=1737034&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/ErrorHandlerDirective.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/ErrorHandlerDirective.java Tue Mar 29 19:19:00 2016
@@ -21,7 +21,7 @@ package org.apache.uima.ducc;
public class ErrorHandlerDirective implements IErrorHandlerDirective {
private boolean killJob = false;
- private boolean killProcess = false;
+ private boolean killProcess = true;
private boolean killWorkItem = true;
public ErrorHandlerDirective() {
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java?rev=1737034&r1=1737033&r2=1737034&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java Tue Mar 29 19:19:00 2016
@@ -222,7 +222,7 @@ public class TestSuite {
String serializedCAS = null;
IErrorHandlerDirective directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == false);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
}
catch(Exception e) {
@@ -256,13 +256,13 @@ public class TestSuite {
eh = new ErrorHandler();
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == false);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
//
eh = new ErrorHandler();
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == false);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
//
limit = 15;
@@ -271,12 +271,12 @@ public class TestSuite {
for(int i=1; i<limit; i++) {
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == false);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
}
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == true);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
//
limit = 10;
@@ -286,12 +286,12 @@ public class TestSuite {
for(int i=1; i<limit; i++) {
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == false);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
}
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == true);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
//
limit = 20;
@@ -301,12 +301,12 @@ public class TestSuite {
for(int i=1; i<limit; i++) {
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == false);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
}
directive = eh.handle(serializedCAS, getUserException());
assertTrue(directive.isKillJob() == true);
- assertTrue(directive.isKillProcess() == false);
+ assertTrue(directive.isKillProcess() == true);
assertTrue(directive.isKillWorkItem() == true);
}
catch(Exception e) {