[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