You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by je...@apache.org on 2013/08/24 03:11:05 UTC
svn commit: r1517096 - in /hbase/branches/0.95/hbase-server/src:
main/java/org/apache/hadoop/hbase/procedure/Procedure.java
test/java/org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java
Author: jeffreyz
Date: Sat Aug 24 01:11:05 2013
New Revision: 1517096
URL: http://svn.apache.org/r1517096
Log:
HBASE-9318: Procedure#waitForLatch may not throw error even there is one
Modified:
hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Procedure.java
hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java
Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Procedure.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Procedure.java?rev=1517096&r1=1517095&r2=1517096&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Procedure.java (original)
+++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Procedure.java Sat Aug 24 01:11:05 2013
@@ -375,5 +375,9 @@ public class Procedure implements Callab
+ wakeFrequency + " ms)"); */
released = latch.await(wakeFrequency, TimeUnit.MILLISECONDS);
}
+ // check error again in case an error raised during last wait
+ if (monitor != null) {
+ monitor.rethrowException();
+ }
}
}
Modified: hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java?rev=1517096&r1=1517095&r2=1517096&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java (original)
+++ hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java Sat Aug 24 01:11:05 2013
@@ -39,6 +39,7 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
import org.apache.hadoop.hbase.SmallTests;
import org.apache.hadoop.hbase.errorhandling.ForeignException;
@@ -136,7 +137,7 @@ public class TestProcedureCoordinator {
// run the operation
proc = coordinator.startProcedure(proc.getErrorMonitor(), procName, procData, expected);
// and wait for it to finish
- proc.waitForCompleted();
+ while(!proc.completedLatch.await(WAKE_FREQUENCY, TimeUnit.MILLISECONDS));
verify(procSpy, atLeastOnce()).receive(any(ForeignException.class));
verify(coordinator, times(1)).rpcConnectionFailure(anyString(), eq(cause));
verify(controller, times(1)).sendGlobalBarrierAcquire(procSpy, procData, expected);
@@ -168,7 +169,7 @@ public class TestProcedureCoordinator {
// run the operation
Procedure task = coordinator.startProcedure(spy.getErrorMonitor(), procName, procData, expected);
// and wait for it to finish
- task.waitForCompleted();
+ while(!task.completedLatch.await(WAKE_FREQUENCY, TimeUnit.MILLISECONDS));
verify(spy, atLeastOnce()).receive(any(ForeignException.class));
verify(coordinator, times(1)).rpcConnectionFailure(anyString(), eq(cause));
verify(controller, times(1)).sendGlobalBarrierAcquire(eq(spy),