I'm seeing more and more CI failures caused by our use of AvailablePort.getRandomAvailablePort. When the test calls AvailablePort.getRandomAvailablePort, a random port is found. But by the time the test actually goes to use the port it's already in use.
It doesn't really make sense to fix this one test at a time since we have a very large number of tests doing this and hitting this failure in CI. I believe the correct fix would be to sweep through the tests to get rid of our use of AvailablePort.getRandomAvailablePort, use zero for the port and then ask the server what port it ended up using if we need the port for something. Trying to determine a randomly available port up front before using it is just a race condition waiting to happen. Thoughts? Caused by: java.net.BindException: Address already in use at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387) at java.net.ServerSocket.bind(ServerSocket.java:375) at com.gemstone.gemfire.internal.SocketCreator.createServerSocket(SocketCreator.java:835) ... 27 more at junit.framework.Assert.fail(Assert.java:57) at junit.framework.TestCase.fail(TestCase.java:227) at dunit.DistributedTestCase.fail(DistributedTestCase.java:970) at com.gemstone.gemfire.security.SecurityTestUtil.createCacheServer(SecurityTestUtil.java:341) at com.gemstone.gemfire.security.ClientAuthorizationTestBase.createCacheServer(ClientAuthorizationTestBase.java:135) 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:497) at hydra.MethExecutor.execute(MethExecutor.java:198) at dunit.standalone.RemoteDUnitVM.executeMethodOnClass(RemoteDUnitVM.java:117) at sun.reflect.GeneratedMethodAccessor210.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$95(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) ... 3 more
