Hello, Option 1: We still have some flaky tests. You can benchmark you build against https://builds.apache.org/job/HBase-TRUNK/ and https://builds.apache.org/job/hbase-0.95/ You can also use this tool: https://github.com/jeffreyz88/jenkins-tools to get a review on the last fails:
On 0.95, we have some tests that failed ~15% of the time: org.apache.hadoop.hbase.client.testadmin.testforcesplitmultifamily 80/6/13 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 -1 org.apache.hadoop.hbase.client.testhcm.testdeleteforzkconnleak 86/6/6 1 -1 0 1 1 1 1 1 1 1 1 1 1 1 1 org.apache.hadoop.hbase.client.testmultiparallel.testactivethreadscount 86/6/6 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 org.apache.hadoop.hbase.client.testmultiparallel.testflushcommitswithabort 86/6/6 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 org.apache.hadoop.hbase.replication.testreplicationqueuefailover.queuefailover 86/6/6 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 org.apache.hadoop.hbase.rest.client.testremoteadmin.testclusterstatus 86/6/6 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 org.apache.hadoop.hbase.security.access.testaccesscontroller.testglobalauthorizationfornewregisteredrs 86/6/6 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 org.apache.hadoop.hbase.util.testhbasefsck.testsplitdaughtersnotinmeta 86/6/6 Option 2: You've got some issues in you env. We run the test in parallel (5 b default when you run all tests, 2 when you run only the small & medium ones). 5 requires around 10 GB or memory. If you have less or if the built is shared, you may enter into strange conditions around test timing requirements. You also need to use oracle jdk. See as well http://hbase.apache.org/book.html / 15.7.3. Running tests, for extra parameters. These options are not exclusive. It seems that these days trunk build is ok ~80% of the time these days, and 0.95 50%. You should expect something similar. A test becomes flaky because a patch breaks it just a little. The patch passes the peer review and the precommit runs, but after a while the randomness shows up, and we need to fix the code again. It's a never ending story. Any help in fixing them is always greatly appreciated. Cheers, Nicolas On Wed, May 29, 2013 at 8:21 AM, Lisen Mu <imm...@gmail.com> wrote: > Hello, > > I'm setting up a jenkins job for hbase, building branch 0.95 (from github) > under jdk 6. > > However sometimes the build pasts, sometimes does not. Several tests are > likely to fail, such as: > > > org.apache.hadoop.hbase.ipc.TestDelayedRpc.testDelayedRpcImmediateReturnValue > org.apache.hadoop.hbase.ipc.TestDelayedRpc.testTooManyDelayedRpcs > org.apache.hadoop.hbase.client.TestHCM.testDeleteForZKConnLeak > > yet they do not fail every time. > > Any clue about what might be the problem? Thanks. > > > From the last failed build: > > the executed mvn command line: > > Executing Maven: -B -f > /var/lib/jenkins/jobs/HBase-0.95-jdk-6/workspace/pom.xml clean package > > > > Possibly related log: > > > org.apache.hadoop.hbase.ipc.TestDelayedRpc.testDelayedRpcImmediateReturnValue > > Error Message > > Index: 1, Size: 1 > > Stacktrace > > java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 > at java.util.ArrayList.RangeCheck(ArrayList.java:547) > at java.util.ArrayList.get(ArrayList.java:322) > at > org.apache.hadoop.hbase.ipc.TestDelayedRpc.testDelayedRpc(TestDelayedRpc.java:112) > at > org.apache.hadoop.hbase.ipc.TestDelayedRpc.testDelayedRpcImmediateReturnValue(TestDelayedRpc.java:71) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) > at org.junit.runners.ParentRunner.run(ParentRunner.java:309) > at org.junit.runners.Suite.runChild(Suite.java:127) > at org.junit.runners.Suite.runChild(Suite.java:26) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) >