[
https://issues.apache.org/jira/browse/HBASE-7384?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13540769#comment-13540769
]
Hadoop QA commented on HBASE-7384:
----------------------------------
{color:red}-1 overall{color}. Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12562544/hbase-7384_1.0.patch
against trunk revision .
{color:green}+1 @author{color}. The patch does not contain any @author
tags.
{color:green}+1 tests included{color}. The patch appears to include 8 new
or modified tests.
{color:green}+1 hadoop2.0{color}. The patch compiles against the hadoop
2.0 profile.
{color:red}-1 javadoc{color}. The javadoc tool appears to have generated 2
warning messages.
{color:green}+1 javac{color}. The applied patch does not increase the
total number of javac compiler warnings.
{color:green}+1 findbugs{color}. The patch does not introduce any new
Findbugs (version 1.3.9) warnings.
{color:green}+1 release audit{color}. The applied patch does not increase
the total number of release audit warnings.
{color:red}-1 lineLengths{color}. The patch introduces lines longer than
100
{color:red}-1 core tests{color}. The patch failed these unit tests:
org.apache.hadoop.hbase.replication.regionserver.TestReplicationSink
org.apache.hadoop.hbase.coprocessor.TestRegionObserverInterface
org.apache.hadoop.hbase.rest.TestStatusResource
org.apache.hadoop.hbase.rest.TestSchemaResource
org.apache.hadoop.hbase.client.TestAdmin
org.apache.hadoop.hbase.coprocessor.TestCoprocessorEndpoint
org.apache.hadoop.hbase.master.TestMasterTransitions
org.apache.hadoop.hbase.replication.TestReplicationSource
org.apache.hadoop.hbase.master.TestAssignmentManagerOnCluster
org.apache.hadoop.hbase.rest.TestScannersWithFilters
org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol
org.apache.hadoop.hbase.master.TestMasterRestartAfterDisablingTable
org.apache.hadoop.hbase.master.TestMaster
org.apache.hadoop.hbase.util.TestIdLock
org.apache.hadoop.hbase.client.TestShell
org.apache.hadoop.hbase.master.TestMasterNoCluster
org.apache.hadoop.hbase.regionserver.TestClusterId
org.apache.hadoop.hbase.coprocessor.TestMasterObserver
org.apache.hadoop.hbase.regionserver.wal.TestHLogSplitCompressed
org.apache.hadoop.hbase.master.TestDistributedLogSplitting
org.apache.hadoop.hbase.regionserver.wal.TestWALReplay
org.apache.hadoop.hbase.zookeeper.TestZooKeeperACL
org.apache.hadoop.hbase.filter.TestColumnRangeFilter
org.apache.hadoop.hbase.coprocessor.TestWALObserver
org.apache.hadoop.hbase.io.hfile.TestHFileBlock
org.apache.hadoop.hbase.security.access.TestAccessControlFilter
org.apache.hadoop.hbase.TestLocalHBaseCluster
org.apache.hadoop.hbase.util.TestFSUtils
org.apache.hadoop.hbase.TestFullLogReconstruction
org.apache.hadoop.hbase.coprocessor.TestRegionObserverBypass
org.apache.hadoop.hbase.mapreduce.TestRowCounter
org.apache.hadoop.hbase.mapreduce.TestMultithreadedTableMapper
org.apache.hadoop.hbase.security.token.TestZKSecretWatcher
org.apache.hadoop.hbase.replication.TestReplication
org.apache.hadoop.hbase.TestAcidGuarantees
org.apache.hadoop.hbase.security.access.TestZKPermissionsWatcher
org.apache.hadoop.hbase.regionserver.wal.TestLogRollAbort
org.apache.hadoop.hbase.master.handler.TestTableDeleteFamilyHandler
org.apache.hadoop.hbase.util.hbck.TestOfflineMetaRebuildHole
org.apache.hadoop.hbase.master.TestMasterFileSystem
org.apache.hadoop.hbase.io.encoding.TestUpgradeFromHFileV1ToEncoding
org.apache.hadoop.hbase.coprocessor.TestRegionServerCoprocessorExceptionWithAbort
org.apache.hadoop.hbase.master.TestMasterFailover
org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster
org.apache.hadoop.hbase.mapreduce.TestImportExport
org.apache.hadoop.hbase.regionserver.wal.TestHLogSplit
org.apache.hadoop.hbase.master.TestZKBasedOpenCloseRegion
org.apache.hadoop.hbase.filter.TestFilterWithScanLimits
org.apache.hadoop.hbase.catalog.TestMetaReaderEditor
org.apache.hadoop.hbase.rest.TestMultiRowResource
org.apache.hadoop.hbase.rest.TestVersionResource
org.apache.hadoop.hbase.regionserver.wal.TestHLog
org.apache.hadoop.hbase.TestRegionRebalancing
org.apache.hadoop.hbase.constraint.TestConstraint
org.apache.hadoop.hbase.rest.TestRowResource
org.apache.hadoop.hbase.master.TestMasterMetrics
org.apache.hadoop.hbase.client.TestFromClientSide
org.apache.hadoop.hbase.coprocessor.TestRowProcessorEndpoint
org.apache.hadoop.hbase.rest.TestGzipFilter
org.apache.hadoop.hbase.backup.TestHFileArchiving
org.apache.hadoop.hbase.TestInfoServers
org.apache.hadoop.hbase.util.hbck.TestOfflineMetaRebuildBase
org.apache.hadoop.hbase.replication.TestMasterReplication
org.apache.hadoop.hbase.coprocessor.TestMasterCoprocessorExceptionWithRemove
org.apache.hadoop.hbase.rest.TestScannerResource
org.apache.hadoop.hbase.catalog.TestMetaMigrationConvertingToPB
org.apache.hadoop.hbase.rest.TestTableResource
org.apache.hadoop.hbase.master.TestMasterMetricsWrapper
org.apache.hadoop.hbase.io.TestFileLink
org.apache.hadoop.hbase.TestClusterBootOrder
org.apache.hadoop.hbase.util.TestRegionSplitter
org.apache.hadoop.hbase.regionserver.TestHRegionBusyWait
org.apache.hadoop.hbase.util.TestMergeTool
org.apache.hadoop.hbase.replication.TestReplicationWithCompression
org.apache.hadoop.hbase.regionserver.wal.TestHLogFiltering
org.apache.hadoop.hbase.thrift2.TestThriftHBaseServiceHandler
org.apache.hadoop.hbase.fs.TestBlockReorder
org.apache.hadoop.hbase.io.encoding.TestChangingEncoding
org.apache.hadoop.hbase.catalog.TestCatalogTrackerOnCluster
org.apache.hadoop.hbase.util.TestHBaseFsck
org.apache.hadoop.hbase.coprocessor.TestMasterCoprocessorExceptionWithAbort
org.apache.hadoop.hbase.io.encoding.TestLoadAndSwitchEncodeOnDisk
org.apache.hadoop.hbase.coprocessor.TestRegionServerCoprocessorExceptionWithRemove
org.apache.hadoop.hbase.regionserver.TestCompaction
org.apache.hadoop.hbase.rest.client.TestRemoteTable
org.apache.hadoop.hbase.regionserver.TestAtomicOperation
org.apache.hadoop.hbase.master.TestRollingRestart
org.apache.hadoop.hbase.security.access.TestTablePermissions
org.apache.hadoop.hbase.master.TestMasterShutdown
org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential
org.apache.hadoop.hbase.util.hbck.TestOfflineMetaRebuildOverlap
org.apache.hadoop.hbase.zookeeper.TestZKTable
org.apache.hadoop.hbase.util.TestCoprocessorScanPolicy
org.apache.hadoop.hbase.client.TestHTableMultiplexer
org.apache.hadoop.hbase.regionserver.TestHRegion
org.apache.hadoop.hbase.TestHBaseTestingUtility
org.apache.hadoop.hbase.coprocessor.TestClassLoading
org.apache.hadoop.hbase.mapreduce.TestHLogRecordReader
org.apache.hadoop.hbase.coprocessor.TestAggregateProtocol
org.apache.hadoop.hbase.TestGlobalMemStoreSize
org.apache.hadoop.hbase.util.TestMergeTable
org.apache.hadoop.hbase.replication.TestMultiSlaveReplication
org.apache.hadoop.hbase.thrift.TestThriftServer
org.apache.hadoop.hbase.client.TestHTableUtil
org.apache.hadoop.hbase.TestMultiVersions
org.apache.hadoop.hbase.rest.client.TestRemoteAdmin
org.apache.hadoop.hbase.util.TestMiniClusterLoadParallel
org.apache.hadoop.hbase.trace.TestHTraceHooks
{color:red}-1 core zombie tests{color}. There are 11 zombie test(s):
at
org.apache.hadoop.hbase.master.TestOpenedRegionHandler.testOpenedRegionHandlerOnMasterRestart(TestOpenedRegionHandler.java:87)
at
org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad.testAtomicBulkLoad(TestHRegionServerBulkLoad.java:273)
Test results:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//testReport/
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
Findbugs warnings:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Console output:
https://builds.apache.org/job/PreCommit-HBASE-Build/3744//console
This message is automatically generated.
> Introducing waitForCondition function into test cases
> -----------------------------------------------------
>
> Key: HBASE-7384
> URL: https://issues.apache.org/jira/browse/HBASE-7384
> Project: HBase
> Issue Type: Test
> Components: test
> Reporter: Jeffrey Zhong
> Assignee: Jeffrey Zhong
> Labels: test
> Fix For: 0.96.0
>
> Attachments: hbase-7384_1.0.patch, hbase-7384.patch, Waiter.java
>
>
> Recently I'm working on flaky test cases and found we have many places using
> while loop and sleep to wait for a condition to be true. There are several
> issues in existing ways:
> 1) Many similar code doing the same thing
> 2) When time out happens, different errors are reported without explicitly
> indicating a time out situation
> 3) When we want to increase the max timeout value to verify if a test case
> fails due to a not-enough time out value, we have to recompile & redeploy code
> I propose to create a waitForCondition function as a test utility function
> like the following:
> {code}
> public interface WaitCheck {
> public boolean Check() ;
> }
> public boolean waitForCondition(int timeOutInMilliSeconds, int
> checkIntervalInMilliSeconds, WaitCheck s)
> throws InterruptedException {
> int multiplier = 1;
> String multiplierProp = System.getProperty("extremeWaitMultiplier");
> if(multiplierProp != null) {
> multiplier = Integer.parseInt(multiplierProp);
> if(multiplier < 1) {
> LOG.warn(String.format("Invalid extremeWaitMultiplier
> property value:%s. is ignored.", multiplierProp));
> multiplier = 1;
> }
> }
> int timeElapsed = 0;
> while(timeElapsed < timeOutInMilliSeconds * multiplier) {
> if(s.Check()) {
> return true;
> }
> Thread.sleep(checkIntervalInMilliSeconds);
> timeElapsed += checkIntervalInMilliSeconds;
> }
> assertTrue("WaitForCondition failed due to time out(" +
> timeOutInMilliSeconds + " milliseconds expired)",
> false);
> return false;
> }
> {code}
> By doing the above way, there are several advantages:
> 1) Clearly report time out error when such situation happens
> 2) Use System property extremeWaitMultiplier to increase max time out
> dynamically for a quick verification
> 3) Standardize current wait situations
> Pleas let me know what your thoughts on this.
> Thanks,
> -Jeffrey
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira