You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2014/05/16 23:29:06 UTC

svn commit: r1595356 - in /hbase/branches/0.98/hbase-server/src: main/java/org/apache/hadoop/hbase/procedure/ test/java/org/apache/hadoop/hbase/procedure/

Author: tedyu
Date: Fri May 16 21:29:06 2014
New Revision: 1595356

URL: http://svn.apache.org/r1595356
Log:
HBASE-11189 Subprocedure should be marked as complete upon failure


Modified:
    hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java
    hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java
    hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedure.java

Modified: hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java?rev=1595356&r1=1595355&r2=1595356&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java (original)
+++ hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/ProcedureMember.java Fri May 16 21:29:06 2014
@@ -246,7 +246,8 @@ public class ProcedureMember implements 
           ", ignoring it.", ee);
       return; // Procedure has already completed
     }
-    LOG.error("Propagating foreign exception to subprocedure " + sub.getName(), ee);
-    sub.monitor.receive(ee);
+    String msg = "Propagating foreign exception to subprocedure " + sub.getName();
+    LOG.error(msg, ee);
+    sub.cancel(msg, ee);
   }
-}
\ No newline at end of file
+}

Modified: hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java?rev=1595356&r1=1595355&r2=1595356&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java (original)
+++ hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java Fri May 16 21:29:06 2014
@@ -263,6 +263,7 @@ abstract public class Subprocedure imple
    */
   public void cancel(String msg, Throwable cause) {
     LOG.error(msg, cause);
+    complete = true;
     if (cause instanceof ForeignException) {
       monitor.receive((ForeignException) cause);
     } else {
@@ -327,4 +328,4 @@ abstract public class Subprocedure imple
     @Override
     public void cleanup(Exception e) {}
   };
-}
\ No newline at end of file
+}

Modified: hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedure.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedure.java?rev=1595356&r1=1595355&r2=1595356&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedure.java (original)
+++ hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedure.java Fri May 16 21:29:06 2014
@@ -231,7 +231,7 @@ public class TestZKProcedure {
     final int[] elem = new int[1];
     for (int i = 0; i < members.size(); i++) {
       ForeignExceptionDispatcher cohortMonitor = new ForeignExceptionDispatcher();
-      ProcedureMember comms = members.get(i).getFirst();
+      final ProcedureMember comms = members.get(i).getFirst();
       Subprocedure commit = Mockito
       .spy(new SubprocedureImpl(comms, opName, cohortMonitor, WAKE_FREQUENCY, TIMEOUT));
       // This nasty bit has one of the impls throw a TimeoutException
@@ -245,7 +245,8 @@ public class TestZKProcedure {
                 new TimeoutException("subprocTimeout" , 1, 2, 0));
             Subprocedure r = ((Subprocedure) invocation.getMock());
             LOG.error("Remote commit failure, not propagating error:" + remoteCause);
-            r.monitor.receive(remoteCause);
+            comms.receiveAbortProcedure(r.getName(), remoteCause);
+            assertEquals(r.isComplete(), true);
             // don't complete the error phase until the coordinator has gotten the error
             // notification (which ensures that we never progress past prepare)
             try {