You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/04/26 21:23:00 UTC
svn commit: r1096859 - in /hbase/trunk/src:
main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java
Author: stack
Date: Tue Apr 26 19:23:00 2011
New Revision: 1096859
URL: http://svn.apache.org/viewvc?rev=1096859&view=rev
Log:
HBASE-3819 TestSplitLogWorker has too many SLWs running -- makes for contention and occasional failures; attempt at fixing broken tests in build introduced by first commit on this issue
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java?rev=1096859&r1=1096858&r2=1096859&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java Tue Apr 26 19:23:00 2011
@@ -136,7 +136,7 @@ public class SplitLogWorker extends ZooK
@Override
public void run() {
- LOG.info("SplitLogWorker starting");
+ LOG.info("SplitLogWorker " + this.serverName + " starting");
this.watcher.registerListener(this);
int res;
// wait for master to create the splitLogZnode
@@ -163,7 +163,7 @@ public class SplitLogWorker extends ZooK
taskLoop();
- LOG.info("SplitLogWorker exiting");
+ LOG.info("SplitLogWorker " + this.serverName + " exiting");
}
/**
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java?rev=1096859&r1=1096858&r2=1096859&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java Tue Apr 26 19:23:00 2011
@@ -19,7 +19,12 @@
*/
package org.apache.hadoop.hbase.regionserver;
-import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.*;
+import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.resetCounters;
+import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.tot_wkr_failed_to_grab_task_lost_race;
+import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.tot_wkr_failed_to_grab_task_owned;
+import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.tot_wkr_preempt_task;
+import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.tot_wkr_task_acquired;
+import static org.apache.hadoop.hbase.zookeeper.ZKSplitLog.Counters.tot_wkr_task_acquired_rescan;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -39,9 +44,7 @@ import org.apache.log4j.Logger;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs.Ids;
import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
@@ -58,6 +61,12 @@ public class TestSplitLogWorker {
private void waitForCounter(AtomicLong ctr, long oldval, long newval,
long timems) {
+ assertTrue("ctr=" + ctr.get() + ", oldval=" + oldval + ", newval=" + newval,
+ waitForCounterBoolean(ctr, oldval, newval, timems));
+ }
+
+ private boolean waitForCounterBoolean(AtomicLong ctr, long oldval, long newval,
+ long timems) {
assert ctr.get() == oldval;
long curt = System.currentTimeMillis();
long endt = curt + timems;
@@ -70,19 +79,10 @@ public class TestSplitLogWorker {
curt = System.currentTimeMillis();
} else {
assertEquals(newval, ctr.get());
- return;
+ return true;
}
}
- assertTrue("ctr=" + ctr.get() + ", oldval=" + oldval + ", newval=" + newval,
- false);
- }
-
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
- }
-
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
+ return false;
}
@Before
@@ -170,14 +170,21 @@ public class TestSplitLogWorker {
"svr2", neverEndingTask);
slw1.start();
slw2.start();
- waitForCounter(tot_wkr_task_acquired, 0, 1, 1000);
- waitForCounter(tot_wkr_failed_to_grab_task_lost_race, 0, 1, 1000);
- assertTrue(TaskState.TASK_OWNED.equals(ZKUtil.getData(zkw,
+ try {
+ waitForCounter(tot_wkr_task_acquired, 0, 1, 1000);
+ boolean first =
+ waitForCounterBoolean(tot_wkr_failed_to_grab_task_owned, 0, 1, 1000);
+ boolean second =
+ waitForCounterBoolean(tot_wkr_failed_to_grab_task_lost_race, 0, 1, 100);
+ assertTrue(first || second);
+ assertTrue(TaskState.TASK_OWNED.equals(ZKUtil.getData(zkw,
ZKSplitLog.getEncodedNodeName(zkw, "trft")), "svr1") ||
TaskState.TASK_OWNED.equals(ZKUtil.getData(zkw,
ZKSplitLog.getEncodedNodeName(zkw, "trft")), "svr2"));
- stopSplitLogWorker(slw1);
- stopSplitLogWorker(slw2);
+ } finally {
+ stopSplitLogWorker(slw1);
+ stopSplitLogWorker(slw2);
+ }
}
@Test