[ https://issues.apache.org/jira/browse/GEODE-9622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17456562#comment-17456562 ]
ASF subversion and git services commented on GEODE-9622: -------------------------------------------------------- Commit 20c417710673faf1d2afb2d72ed14fcaadc17926 in geode's branch refs/heads/develop from Dale Emery [ https://gitbox.apache.org/repos/asf?p=geode.git;h=20c4177 ] GEODE-9622: Make failover test not use ephemeral port (#7178) PROBLEM `ClientServerTransactionFailoverWithMixedVersionServersDistributedTest` misused ephemeral ports. Some tests start a locator on an ephemeral port, stop the locator, and attempt to restart it on the same port. During the time the locator is stopped, the OS can assign that port to another process. When that happens, as in these failures, the test is unable to restart the locator. SOLUTION Change the test to use `AvailablePortHelper` to assign an available port, rather than requesting an ephemeral port. > CI Failure: > ClientServerTransactionFailoverWithMixedVersionServersDistributedTest fails > with BindException > ---------------------------------------------------------------------------------------------------------- > > Key: GEODE-9622 > URL: https://issues.apache.org/jira/browse/GEODE-9622 > Project: Geode > Issue Type: Bug > Components: client/server, tests > Reporter: Kirk Lund > Assignee: Dale Emery > Priority: Major > Labels: GeodeOperationAPI, pull-request-available > > {noformat} > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest > > clientTransactionOperationsAreNotLostIfTransactionIsOnRolledServer FAILED > org.apache.geode.test.dunit.RMIException: While invoking > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest$$Lambda$68/194483270.call > in VM 5 running on Host > heavy-lifter-2b8702f1-fe32-5895-9b14-832b7049b607.c.apachegeode-ci.internal > with 6 VMs > at org.apache.geode.test.dunit.VM.executeMethodOnObject(VM.java:631) > at org.apache.geode.test.dunit.VM.invoke(VM.java:473) > at > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.rollLocatorToCurrent(ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java:216) > at > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.setupPartiallyRolledVersion(ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java:171) > at > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.clientTransactionOperationsAreNotLostIfTransactionIsOnRolledServer(ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java:127) > Caused by: > java.net.BindException: Failed to create server socket on > heavy-lifter-2b8702f1-fe32-5895-9b14-832b7049b607.c.apachegeode-ci.internal/10.0.0.60[43535] > at > org.apache.geode.distributed.internal.tcpserver.ClusterSocketCreatorImpl.createServerSocket(ClusterSocketCreatorImpl.java:75) > at > org.apache.geode.internal.net.SCClusterSocketCreator.createServerSocket(SCClusterSocketCreator.java:55) > at > org.apache.geode.distributed.internal.tcpserver.ClusterSocketCreatorImpl.createServerSocket(ClusterSocketCreatorImpl.java:54) > at > org.apache.geode.distributed.internal.tcpserver.TcpServer.initializeServerSocket(TcpServer.java:196) > at > org.apache.geode.distributed.internal.tcpserver.TcpServer.startServerThread(TcpServer.java:183) > at > org.apache.geode.distributed.internal.tcpserver.TcpServer.start(TcpServer.java:178) > at > org.apache.geode.distributed.internal.membership.gms.locator.MembershipLocatorImpl.start(MembershipLocatorImpl.java:112) > at > org.apache.geode.distributed.internal.InternalLocator.startPeerLocation(InternalLocator.java:653) > at > org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:394) > at > org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:345) > at > org.apache.geode.distributed.Locator.startLocator(Locator.java:261) > at > org.apache.geode.distributed.Locator.startLocatorAndDS(Locator.java:207) > at > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.startLocator(ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java:180) > at > org.apache.geode.internal.cache.ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.lambda$rollLocatorToCurrent$92d5d92a$1(ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java:216) > Caused by: > java.net.BindException: Address already in use (Bind failed) > at java.net.PlainSocketImpl.socketBind(Native Method) > at > java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387) > at java.net.ServerSocket.bind(ServerSocket.java:390) > at > org.apache.geode.distributed.internal.tcpserver.ClusterSocketCreatorImpl.createServerSocket(ClusterSocketCreatorImpl.java:72) > ... 13 more > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)