[ 
https://issues.apache.org/jira/browse/IGNITE-9589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16618977#comment-16618977
 ] 

Amelchev Nikita commented on IGNITE-9589:
-----------------------------------------

I have [prepared PR|https://github.com/apache/ignite/pull/4751] to fix the test.
The test uses zero port range to start node and sometimes throws bind exception 
if address already uses.
I added retry node start after some timeout to avoid bind exception. This way 
successfully used in other communication tests. [TC 
tests|https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_Spi&branch_IgniteTests24Java8=pull%2F4751%2Fhead&tab=buildTypeStatusDiv]
 are OK([100 
runs|https://ci.ignite.apache.org/viewLog.html?buildId=1896514&buildTypeId=IgniteTests24Java8_Spi&tab=testsInfo]).

> GridTcpCommunicationSpiConfigSelfTest.testLocalPortRange is flaky in master
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-9589
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9589
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Amelchev Nikita
>            Assignee: Amelchev Nikita
>            Priority: Major
>              Labels: MakeTeamcityGreenAgain
>             Fix For: 2.7
>
>
> The test GridTcpCommunicationSpiConfigSelfTest.testLocalPortRange fails 
> periodicaly.
> From the logs, I see that the failure is caused by BindException. It causes 
> node start fails because the test port range is 0.
> {noformat}
> [2018-09-13 
> 04:06:20,060][ERROR][test-runner-#225862%tcp.GridTcpCommunicationSpiConfigSelfTest%][GridTcpCommunicationSpiConfigSelfTest]
>  Failed to start manager: GridManagerAdapter [enabled=true, 
> name=o.a.i.i.managers.communication.GridIoManager]
> class org.apache.ignite.IgniteCheckedException: Failed to get SPI attributes.
>     at 
> org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:278)
>     at 
> org.apache.ignite.internal.managers.communication.GridIoManager.start(GridIoManager.java:262)
>     at 
> org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1755)
>     at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:975)
>     at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2020)
>     at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1725)
>     at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1153)
>     at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:673)
>     at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:598)
>     at org.apache.ignite.Ignition.start(Ignition.java:323)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest.startGrid(GridAbstractTest.java:1370)
>     at 
> org.apache.ignite.spi.communication.tcp.GridTcpCommunicationSpiConfigSelfTest.testLocalPortRange(GridTcpCommunicationSpiConfigSelfTest.java:65)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:498)
>     at junit.framework.TestCase.runTest(TestCase.java:176)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:2177)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:143)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest$5.run(GridAbstractTest.java:2092)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: class org.apache.ignite.spi.IgniteSpiException: Failed to 
> initialize TCP server: 0.0.0.0/0.0.0.0
>     at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.getNodeAttributes(TcpCommunicationSpi.java:2137)
>     at 
> org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:261)
>     ... 20 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to bind to 
> any port within range [startPort=47100, portRange=0, locHost=0.0.0.0/0.0.0.0]
>     at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.resetNioServer(TcpCommunicationSpi.java:2450)
>     at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.getNodeAttributes(TcpCommunicationSpi.java:2134)
>     ... 21 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to 
> initialize NIO selector.
>     at 
> org.apache.ignite.internal.util.nio.GridNioServer.createSelector(GridNioServer.java:988)
>     at 
> org.apache.ignite.internal.util.nio.GridNioServer.<init>(GridNioServer.java:342)
>     at 
> org.apache.ignite.internal.util.nio.GridNioServer.<init>(GridNioServer.java:97)
>     at 
> org.apache.ignite.internal.util.nio.GridNioServer$Builder.build(GridNioServer.java:3669)
>     at 
> org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi.resetNioServer(TcpCommunicationSpi.java:2415)
>     ... 22 more
> Caused by: java.net.BindException: Address already in use
>     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 sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
>     at 
> org.apache.ignite.internal.util.nio.GridNioServer.createSelector(GridNioServer.java:972)
>     ... 26 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to