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 2015/02/06 22:09:41 UTC

svn commit: r1657963 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/

Author: challngr
Date: Fri Feb  6 21:09:41 2015
New Revision: 1657963

URL: http://svn.apache.org/r1657963
Log:
UIMA-4223 Don't kill job if service is registered, but not functioning.

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IService.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java?rev=1657963&r1=1657962&r2=1657963&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java Fri Feb  6 21:09:41 2015
@@ -1392,6 +1392,7 @@ public class StateManager {
 						break;
 					case WaitingForServices:
 						switch(serviceState) {
+                        case Pending:                   // UIMA-4223
 						case Waiting:
                         case Starting:
 						case Initializing:

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java?rev=1657963&r1=1657962&r2=1657963&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceHandler.java Fri Feb  6 21:09:41 2015
@@ -311,7 +311,7 @@ public class ServiceHandler
         // Running > Initializing > Waiting > NotAvailable
         //
         // This sets the state to the min(all dependent service states)
-        //
+        //        
         for ( ServiceSet sset : services.values() ) {
             if ( sset.getState().ordinality() < state.ordinality() ) state = sset.getState();
              dep.setIndividualState(sset.getKey(), sset.getState());
@@ -320,6 +320,12 @@ public class ServiceHandler
              }
              // logger.debug(methodName, id, "Set individual state", sset.getState());
         }
+
+        if ( state.ordinality() < 5 ) {       // UIMA-4223, if we got this far, the services all exist but at least one of them
+                                              // is not usable.  We use this slightly artificial state to insure the OR keeps
+                                              // the work WaitingForServices.
+            state = ServiceState.Pending;
+        }
         dep.setState(state);
     }
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IService.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IService.java?rev=1657963&r1=1657962&r2=1657963&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IService.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IService.java Fri Feb  6 21:09:41 2015
@@ -105,6 +105,9 @@ public interface IService
         // In code we want to be able to use the nicer mixed-case names.
         // Always use encode and decode and you can't get this wrong.
         //
+        Pending           { public String decode() { return "pending"        ; } },  // Work is waiting on at least one service to start but
+                                                                                     // the service is not disabled or some such.  UIMA-4223
+
 		Waiting           { public String decode() { return "waiting"        ; } },  // A job is waiting on at least one service to ping
         Starting          { public String decode() { return "starting"       ; } },  // Instance is started, but not yet to Initializing
 		Initializing      { public String decode() { return "initializing"   ; } },  // A job is waiting on at least one service to initialize
@@ -120,6 +123,7 @@ public interface IService
 
         public static ServiceState encode(String value)
         {
+            if ( value.equals("pending"       ) ) return Pending;                    // UIMA-4223
             if ( value.equals("waiting"       ) ) return Waiting;
             if ( value.equals("starting"      ) ) return Starting;
             if ( value.equals("stopped"       ) ) return Stopped;
@@ -135,6 +139,7 @@ public interface IService
         public int ordinality()
         {
             switch ( this ) {
+                case Pending:      return 9;                                        // UIMA-4223
                 case Available:    return 8;
                 case Waiting:      return 7;
                 case Initializing: return 6;