james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Tellier <btell...@linagora.com>
Subject Re: Is it normal that HBASE test is failing?
Date Wed, 25 Apr 2018 03:17:15 GMT
Hi Simon,

I already saw the Cassandra failure you noticed with the docker build.It
is a recurring failure, with low probability. I suspect this might be
linked to the computer performances. Of course, any hint or proposal to
improve the stability of the build is more than welcome!

The way we run Cassandra test is:
 - Starting a dockerized Cassandra
 - Each test uses a different keyspace

However, we encounter performance and stability issues past ~20 tests.
In that case, changing of Cassandra server helps.

If the problem is persistent, you can use the
*ContainerLifecycleConfiguration* utility in the failing classes as a
workaround. For instance as in *CassandraMessageMapperTest*. That can
very well be a contribution BTW.

Concerning the HBase failure, I must admit I have no idea.
  - Maybe you can give information about your operating system? (there
is some UMASK dark magic as part of HBaseClusterSingleton so I might
suspect non-portable code there...)

Cheers, and thanks for your feedbacks and efforts!

Best regards,

Benoit

Le 25/04/2018 à 03:25, Simon Levesque a écrit :
> Thanks Benoit.
>
> I am not really looking at using HBASE; it is just failing.
> I want to use the JPa on MariaDB.
>
> I quickly ran the tests locally and in the Docker build and here are parts
> of the logs.
>
> # Using locally
>
> From a clean repository on "master":
>
> ```
> mvn clean install
> ```
>
> Getting (the IP was edited):
> ```
> 18/04/24 06:56:09 ERROR hbase.MiniHBaseCluster: Error starting cluster
> java.lang.RuntimeException: Failed construction of Master: class
> org.apache.hadoop.hbase.master.HMasterCannot assign requested address
> at
> org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:137)
> at
> org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:199)
> at
> org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:149)
> at org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:206)
> at org.apache.hadoop.hbase.MiniHBaseCluster.<init>(MiniHBaseCluster.java:87)
> at org.apache.hadoop.hbase.MiniHBaseCluster.<init>(MiniHBaseCluster.java:78)
> at
> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniHBaseCluster(HBaseTestingUtility.java:667)
> at
> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:637)
> at
> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:585)
> at
> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:554)
> at
> org.apache.james.mailbox.hbase.HBaseClusterSingleton.<init>(HBaseClusterSingleton.java:94)
> at
> org.apache.james.mailbox.hbase.HBaseClusterSingleton.build(HBaseClusterSingleton.java:59)
> at
> org.apache.james.mailbox.hbase.mail.HBaseUidAndModSeqProviderTest.<clinit>(HBaseUidAndModSeqProviderTest.java:57)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at
> org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:195)
> at
> org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:244)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241)
> 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.runner.JUnitCore.run(JUnitCore.java:160)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
> at
> org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> at java.util.Iterator.forEachRemaining(Iterator.java:116)
> at
> java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> at
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
> at
> org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:83)
> at
> org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:74)
> at
> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
>   at
> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
> at
> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
> at
> org.junit.platform.surefire.provider.JUnitPlatformProvider.invokeSingleClass(JUnitPlatformProvider.java:148)
> at
> org.junit.platform.surefire.provider.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:130)
> at
> org.junit.platform.surefire.provider.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:106)
> at
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
> at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
> Caused by: java.net.BindException: Problem binding to
> 104-163-XX-XX.qc.cable.ebox.net/104.163.XX.XX:0 : Cannot assign requested
> address
> at org.apache.hadoop.hbase.ipc.HBaseServer.bind(HBaseServer.java:259)
> at
> org.apache.hadoop.hbase.ipc.HBaseServer$Listener.<init>(HBaseServer.java:483)
> at org.apache.hadoop.hbase.ipc.HBaseServer.<init>(HBaseServer.java:1571)
> at
> org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.<init>(WritableRpcEngine.java:255)
> at
> org.apache.hadoop.hbase.ipc.WritableRpcEngine.getServer(WritableRpcEngine.java:204)
> at
> org.apache.hadoop.hbase.ipc.WritableRpcEngine.getServer(WritableRpcEngine.java:56)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getServer(HBaseRPC.java:330)
> at org.apache.hadoop.hbase.ipc.HBaseRPC.getServer(HBaseRPC.java:319)
> at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:312)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at
> org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:134)
> ... 52 more
> Caused by: java.net.BindException: Cannot assign requested address
> at sun.nio.ch.Net.bind0(Native Method)
> at sun.nio.ch.Net.bind(Net.java:433)
> at sun.nio.ch.Net.bind(Net.java:425)
> at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
> at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
> at org.apache.hadoop.hbase.ipc.HBaseServer.bind(HBaseServer.java:257)
> ... 65 more
> Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 1.711 sec
> <<< FAILURE! - in
> org.apache.james.mailbox.hbase.mail.HBaseUidAndModSeqProviderTest
> testLastUid  Time elapsed: 0.007 sec  <<< ERROR!
>
>
> [INFO] Apache James :: Mailbox :: HBase ................... FAILURE [
> 19.165 s]
>
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test)
> on project apache-james-mailbox-hbase: There are test failures.
> [ERROR]
> [ERROR] Please refer to
> /home/simon/private/programmation/james-project/mailbox/hbase/target/surefire-reports
> for the individual test results.
> [ERROR] -> [Help 1]
> [ERROR]
>
> ```
>
>
>
> # Using Docker Build
>
> ```
> git clean -d -x -f
> docker build -t james/project dockerfiles/compilation/java-8
> docker run --env DOCKER_HOST=unix:///var/run/docker.sock -v
> /var/run/docker.sock:/var/run/docker.sock -v $PWD/.m2:/root/.m2 -v
> $PWD:/origin -v $PWD/dockerfiles/run/spring/destination:/destination -t
> james/project
> ```
>
> Getting Cassandra issues intead:
> ```
> Running
> org.apache.james.mailbox.cassandra.mail.MessageAttachmentRepresentationByIdTest
> Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.24 sec -
> in
> org.apache.james.mailbox.cassandra.mail.MessageAttachmentRepresentationByIdTest
>
> Results :
>
> Failed tests:
>   MailboxManagerTest.addingMessageShouldFireQuotaUpdateEvent Multiple
> Failures (2 failures)
> Can't use this cluster instance because it was previously closed
> <no message> in java.lang.NullPointerException
>   MailboxManagerTest.closingSessionShouldWork Multiple Failures (2 failures)
> Can't use this cluster instance because it was previously closed
> <no message> in java.lang.NullPointerException
>   MailboxManagerTest.createMailboxShouldReturnRightId Multiple Failures (2
> failures)
> Can't use this cluster instance because it was previously closed
> <no message> in java.lang.NullPointerException
>   MailboxManagerTest.createUser1SystemSessionShouldReturnValidSession
> Multiple Failures (2 failures)
> Can't use this cluster instance because it was previously closed
> <no message> in java.lang.NullPointerException
> ```
>
>
>
> Since you said that it is normally working fine, I will keep digging later.
> At least I know that it is my setup that is causing issues; not something
> that is "expected".
>
> thanks
>
>
> On Mon, 23 Apr 2018 at 22:03 Benoit Tellier <btellier@linagora.com> wrote:
>
>> Hi Simon,
>>
>> No, it is not normal. We run test on every merges (mvn clean install),
>> so enabled tests are passing.
>>
>> Could you provide a bit more information on these failure?
>>  - Which tests?
>>  - You command you run for getting them?
>>  - Do you obtain them with the docker compliation container?
>>  - Could you give the exact failure, with error message and stacktrace?
>>
>> These elements are required to further understand what problems you
>> encountered. You might also want to add pieces of information that might
>> be connected to it, or might help to understand.
>>
>> Finally, please be aware HBase back-end is considered as experimental. I
>> will open a ticket for clearly documenting that (website + default
>> configuration files).
>>
>> By the way, the HBase back-end might benefit from contributions. Don't
>> hesitate to reach us if you want to help on this.
>>
>> Cheers,
>>
>> Benoit Tellier
>>
>>
>> Le 23/04/2018 à 18:16, Simon Levesque a écrit :
>>> By normal, I mean that it is happening for everybody ; not just on my
>>> machine.
>>>
>>> It is failing on "master" and also in the tag for version 3.0.1
>>>
>>> thanks
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-dev-help@james.apache.org
>>
>>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message