HDFS-11290. TestFSNameSystemMBean should wait until JMX cache is cleared. Contributed by Erik Krogen.

(cherry picked from commit b1a9ec856b)
(cherry picked from commit db47bd15dd)
This commit is contained in:
Akira Ajisaka 2017-01-18 17:53:21 +09:00
parent b13492a0ab
commit b0b3966851
2 changed files with 13 additions and 0 deletions

View File

@ -213,6 +213,9 @@ Release 2.7.4 - UNRELEASED
HDFS-11263. ClassCastException when we use Bzipcodec for Fsimage
compression. (Brahma Reddy Battula)
HDFS-11290. TestFSNameSystemMBean should wait until JMX cache is cleared.
(Eric Krogen via aajisaka)
Release 2.7.3 - 2016-08-25
INCOMPATIBLE CHANGES

View File

@ -32,6 +32,8 @@ import javax.management.ObjectName;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.metrics2.impl.ConfigBuilder;
import org.apache.hadoop.metrics2.impl.TestMetricsConfig;
import org.junit.Test;
import org.mortbay.util.ajax.JSON;
@ -137,12 +139,16 @@ public class TestFSNamesystemMBean {
MiniDFSCluster cluster = null;
FSNamesystem fsn = null;
int jmxCachePeriod = 1;
new ConfigBuilder().add("namenode.period", jmxCachePeriod)
.save(TestMetricsConfig.getTestFilename("hadoop-metrics2-namenode"));
try {
cluster = new MiniDFSCluster.Builder(conf).build();
cluster.waitActive();
fsn = cluster.getNameNode().namesystem;
fsn.writeLock();
Thread.sleep(jmxCachePeriod * 1000);
MBeanClient client = new MBeanClient();
client.start();
@ -165,11 +171,15 @@ public class TestFSNamesystemMBean {
@Test
public void testWithFSEditLogLock() throws Exception {
Configuration conf = new Configuration();
int jmxCachePeriod = 1;
new ConfigBuilder().add("namenode.period", jmxCachePeriod)
.save(TestMetricsConfig.getTestFilename("hadoop-metrics2-namenode"));
MiniDFSCluster cluster = null;
try {
cluster = new MiniDFSCluster.Builder(conf).build();
cluster.waitActive();
synchronized (cluster.getNameNode().getFSImage().getEditLog()) {
Thread.sleep(jmxCachePeriod * 1000);
MBeanClient client = new MBeanClient();
client.start();
client.join(20000);