[infinispan-issues] [JBoss JIRA] (ISPN-8333) HotRod client test suite fails with java.net.BindException when run from through IKVM

Martin Gencur (JIRA) issues at jboss.org
Fri Sep 22 09:36:00 EDT 2017


Martin Gencur created ISPN-8333:
-----------------------------------

             Summary: HotRod client test suite fails with java.net.BindException when run from through IKVM
                 Key: ISPN-8333
                 URL: https://issues.jboss.org/browse/ISPN-8333
             Project: Infinispan
          Issue Type: Bug
          Components: Test Suite - Server
    Affects Versions: 9.1.1.Final
            Reporter: Martin Gencur
            Assignee: Martin Gencur


The Java test suite being run through IKVM throws a BindException. The tests are run through IKVM in the .NET native client. Upgrading the ISPN dependency in the .NET client to 9.1.1 introduces this problem.

The test suite is first trying to find a free port but this ends up with the following exception (when I print the stack trace), and it falls back to returning a predefined port 15232:
{code}
java.net.SocketException: socket closed
3:      at ikvm.internal.JNI.JNU_ThrowByName(JNI.java:53)
3:      at java.net.TwoStacksPlainSocketImpl_c.socketListen(TwoStacksPlainSocketImpl_c.java:586)
3:      at java.net.TwoStacksPlainSocketImpl.socketListen(TwoStacksPlainSocketImpl.java:235)
3:      at java.net.PlainSocketImpl.socketListen(PlainSocketImpl.java:329)
3:      at java.net.AbstractPlainSocketImpl.listen(AbstractPlainSocketImpl.java:395)
3:      at java.net.ServerSocket.bind(ServerSocket.java:377)
3:      at java.net.ServerSocket.<init>(ServerSocket.java:237)
3:      at java.net.ServerSocket.<init>(ServerSocket.java:129)
3:      at org.infinispan.server.core.test.ServerTestingUtil.findFreePort(ServerTestingUtil.java:47)
3:      at org.infinispan.server.core.test.ServerTestingUtil.startProtocolServer(ServerTestingUtil.java:73)
3:      at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.startHotRodServer(HotRodClientTestingUtil.java:51)
3:      at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.startHotRodServer(HotRodClientTestingUtil.java:47)
3:      at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.startHotRodServer(HotRodClientTestingUtil.java:55)
3:      at org.infinispan.client.hotrod.StringSerializerHotRodTest.createCacheManager(StringSerializerHotRodTest.java:74)
3:      at org.infinispan.test.SingleCacheManagerTest.setup(SingleCacheManagerTest.java:31)
3:      at org.infinispan.client.hotrod.StringSerializerHotRodTest.setUp(StringSerializerHotRodTest.java:139)
3:      at java.lang.reflect.Method.invoke(Method.java:486)
3:      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:79)
3:      at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
3:      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
3:      at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
3:      at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
3:      at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1228)
3:      at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
3:      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
3:      at org.testng.TestRunner.privateRun(TestRunner.java:766)
{code}

Subsequently the test suite is assigning the same port to multiple tests and it results in the following exception:
{code}
java.lang.AssertionError: java.net.BindException: Only one usage of each socket address (protocol/network address/port) is normally permitted
2:      at org.infinispan.server.core.test.ServerTestingUtil.startProtocolServer(ServerTestingUtil.java:79)
2:      at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.startHotRodServer(HotRodClientTestingUtil.java:51)
2:      at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.startHotRodServer(HotRodClientTestingUtil.java:47)
2:      at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.startHotRodServer(HotRodClientTestingUtil.java:55)
2:      at org.infinispan.client.hotrod.CrossLanguageHotRodTest.createCacheManager(CrossLanguageHotRodTest.java:124)
2:      at org.infinispan.test.SingleCacheManagerTest.setup(SingleCacheManagerTest.java:31)
2:      at org.infinispan.client.hotrod.CrossLanguageHotRodTest.setUp(CrossLanguageHotRodTest.java:186)
2:      at org.infinispan.client.hotrod.CrossLanguageHotRodTest.main(CrossLanguageHotRodTest.java:642)
2: Caused by: java.net.BindException: Only one usage of each socket address (protocol/network address/port) is normally permitted
2:      at java.net.SocketUtil.convertSocketExceptionToIOException(SocketUtil.java:58)
2:      at IKVM.NativeCode.sun.nio.ch.Net.bind0(Unknown Source)
2:      at sun.nio.ch.Net.bind(Net.java:438)
2:      at sun.nio.ch.Net.bind(Net.java:430)
2:      at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
2:      at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:128)
2:      at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:554)
2:      at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1259)
2:      at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501)
2:      at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486)
2:      at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:980)
2:      at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:250)
2:      at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:365)
2:      at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
2:      at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405)
2:      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
2:      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:859)
2:      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
2:      at java.lang.Thread.run(Thread.java:955)
2: ... Removed 20 stack frames
{code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the infinispan-issues mailing list