You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ar...@apache.org on 2016/01/16 01:10:58 UTC
[32/43] hadoop git commit: HADOOP-12706.
TestLocalFsFCStatistics#testStatisticsThreadLocalDataCleanUp times out
occasionally. Contributed by Sangjin Lee and Colin Patrick McCabe
HADOOP-12706. TestLocalFsFCStatistics#testStatisticsThreadLocalDataCleanUp times out occasionally. Contributed by Sangjin Lee and Colin Patrick McCabe
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cdf88952
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cdf88952
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cdf88952
Branch: refs/heads/HDFS-1312
Commit: cdf88952599a43b1ef5adda792bfb195c7529fad
Parents: 651c23e
Author: Jason Lowe <jl...@apache.org>
Authored: Thu Jan 14 23:45:03 2016 +0000
Committer: Jason Lowe <jl...@apache.org>
Committed: Thu Jan 14 23:45:03 2016 +0000
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 6 ++++++
.../apache/hadoop/fs/FCStatisticsBaseTest.java | 21 +++++++++++++++-----
2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdf88952/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 6be370c..3f3cbea 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -1652,6 +1652,9 @@ Release 2.7.3 - UNRELEASED
HADOOP-12107. long running apps may have a huge number of StatisticsData
instances under FileSystem (Sangjin Lee via Ming Ma)
+ HADOOP-12706. TestLocalFsFCStatistics#testStatisticsThreadLocalDataCleanUp
+ times out occasionally (Sangjin Lee and Colin Patrick McCabe via jlowe)
+
Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES
@@ -2449,6 +2452,9 @@ Release 2.6.4 - UNRELEASED
HADOOP-12107. long running apps may have a huge number of StatisticsData
instances under FileSystem (Sangjin Lee via Ming Ma)
+ HADOOP-12706. TestLocalFsFCStatistics#testStatisticsThreadLocalDataCleanUp
+ times out occasionally (Sangjin Lee and Colin Patrick McCabe via jlowe)
+
Release 2.6.3 - 2015-12-17
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdf88952/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FCStatisticsBaseTest.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FCStatisticsBaseTest.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FCStatisticsBaseTest.java
index 3e33362..2e208d2 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FCStatisticsBaseTest.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FCStatisticsBaseTest.java
@@ -32,6 +32,8 @@ import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.fs.FileSystem.Statistics;
import org.apache.hadoop.test.GenericTestUtils;
import org.junit.Assert;
@@ -46,6 +48,8 @@ import com.google.common.util.concurrent.Uninterruptibles;
* </p>
*/
public abstract class FCStatisticsBaseTest {
+ private static final Log LOG = LogFactory.getLog(FCStatisticsBaseTest.class);
+
static protected int blockSize = 512;
static protected int numBlocks = 1;
@@ -110,7 +114,7 @@ public abstract class FCStatisticsBaseTest {
fc.delete(filePath, true);
}
- @Test(timeout=60000)
+ @Test(timeout=70000)
public void testStatisticsThreadLocalDataCleanUp() throws Exception {
final Statistics stats = new Statistics("test");
// create a small thread pool to test the statistics
@@ -137,17 +141,24 @@ public abstract class FCStatisticsBaseTest {
es.shutdownNow();
es.awaitTermination(1, TimeUnit.MINUTES);
es = null;
- System.gc();
+ System.gc(); // force GC to garbage collect threads
- // wait for up to 10 seconds
+ // wait for up to 60 seconds
GenericTestUtils.waitFor(new Supplier<Boolean>() {
@Override
public Boolean get() {
int size = stats.getAllThreadLocalDataSize();
allDataSize.set(size);
- return size == 0;
+ if (size == 0) {
+ return true;
+ }
+ LOG.warn("not all references have been cleaned up; still " +
+ allDataSize.get() + " references left");
+ LOG.warn("triggering another GC");
+ System.gc();
+ return false;
}
- }, 1000, 10*1000);
+ }, 500, 60*1000);
Assert.assertEquals(0, allDataSize.get());
Assert.assertEquals(size, stats.getReadOps());
}