[
https://issues.apache.org/jira/browse/HBASE-13242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14361611#comment-14361611
]
zhangduo commented on HBASE-13242:
----------------------------------
https://builds.apache.org/job/PreCommit-HBASE-Build/13240/artifact/hbase-server/target/surefire-reports/org.apache.hadoop.hbase.regionserver.TestPerColumnFamilyFlush-output.txt
(125.64 MB, Do NOT open it directly in browser)
The testcase hangs after print this
{noformat}
2015-03-14 02:22:49,779 INFO [Thread-748]
regionserver.TestPerColumnFamilyFlush(481): The number of log files is now: 11.
Expect a log roll and memstore flush.
{noformat}
The code is here, we are waiting the number of log files fall below the max
logs limit.
{code:title=TestPerColumnFamilyFlush.java}
// Wait for some time till the flush caused by log rolling happens.
while (((FSHLog) (desiredRegion.getWAL())).getNumLogFiles() > maxLogs)
Threads.sleep(100);
{code}
Here we use 'getNumLogFiles', but in findRegionsToForceFlush we use
'getNumRolledLogFiles', see the implementation of 'getNumLogFiles'
{code:title=FSHLog.java}
// public only until class moves to o.a.h.h.wal
/** @return the number of log files in use */
public int getNumLogFiles() {
// +1 for current use log
return getNumRolledLogFiles() + 1;
}
{code}
So it is possible that we enter an infinite loop here because of the '+1'...
Will prepare a patch soon...
> TestPerColumnFamilyFlush.testFlushingWhenLogRolling hung
> --------------------------------------------------------
>
> Key: HBASE-13242
> URL: https://issues.apache.org/jira/browse/HBASE-13242
> Project: HBase
> Issue Type: Bug
> Components: test
> Affects Versions: 2.0.0, 1.1.0
> Reporter: zhangduo
> Assignee: zhangduo
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)