From 14962a8c02c0e4dedce25038c2ccb015be91ff57 Mon Sep 17 00:00:00 2001 From: chenheng Date: Fri, 19 Feb 2016 17:07:31 +0800 Subject: [PATCH] HBASE-15288 Flakey TestMasterMetrics.testClusterRequests on branch-1.1 --- .../hadoop/hbase/master/TestMasterMetrics.java | 32 ++++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) 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..61d5e2e 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 = waitClusterRequestsToBeStable(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 waitClusterRequestsToBeStable( 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(); -- 1.9.3 (Apple Git-50)