Repository: hbase Updated Branches: refs/heads/branch-1.1 e3ea7a427 -> ff65cba33
HBASE-15288 Flakey TestMasterMetrics.testClusterRequests on branch-1.1 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ff65cba3 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ff65cba3 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ff65cba3 Branch: refs/heads/branch-1.1 Commit: ff65cba3390447af3075f98bacb2077acf224de8 Parents: e3ea7a4 Author: chenheng <[email protected]> Authored: Sat Feb 20 10:00:11 2016 +0800 Committer: chenheng <[email protected]> Committed: Sat Feb 20 10:00:11 2016 +0800 ---------------------------------------------------------------------- .../hadoop/hbase/master/TestMasterMetrics.java | 32 ++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/ff65cba3/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java index b7e77fa..20c09de 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java @@ -90,29 +90,43 @@ public class TestMasterMetrics { request.setServer(ProtobufUtil.toServerName(serverName)); MetricsMasterSource masterSource = master.getMasterMetrics().getMetricsSource(); - ClusterStatusProtos.ServerLoad sl = ClusterStatusProtos.ServerLoad.newBuilder() - .setTotalNumberOfRequests(10000) - .build(); masterSource.init(); + + // At begining, there maybe some requests to meta table, we should wait until + // our requests count to be stable. + long requests = waitForStableClusterRequests(masterSource); + + ClusterStatusProtos.ServerLoad sl = ClusterStatusProtos.ServerLoad.newBuilder() + .setTotalNumberOfRequests(10000) + .build(); request.setLoad(sl); master.getMasterRpcServices().regionServerReport(null, request.build()); - - metricsHelper.assertCounter("cluster_requests", 10000, masterSource); + metricsHelper.assertCounter("cluster_requests", requests + 10000, masterSource); sl = ClusterStatusProtos.ServerLoad.newBuilder() .setTotalNumberOfRequests(15000) .build(); request.setLoad(sl); master.getMasterRpcServices().regionServerReport(null, request.build()); - - metricsHelper.assertCounter("cluster_requests", 15000, masterSource); + metricsHelper.assertCounter("cluster_requests", requests + 15000, masterSource); master.getMasterRpcServices().regionServerReport(null, request.build()); - - metricsHelper.assertCounter("cluster_requests", 15000, masterSource); + metricsHelper.assertCounter("cluster_requests", requests + 15000, masterSource); master.stopMaster(); } + private long waitForStableClusterRequests( MetricsMasterSource masterSource) + throws InterruptedException { + long oldRequests = 0; + long requests = metricsHelper.getCounter("cluster_requests", masterSource); + while (requests != oldRequests) { + Thread.sleep(1000); + oldRequests = requests; + requests = metricsHelper.getCounter("cluster_requests", masterSource); + } + return requests; + } + @Test public void testDefaultMasterMetrics() throws Exception { MetricsMasterSource masterSource = master.getMasterMetrics().getMetricsSource();
