+1

This will also help us if we ever get around to parallelizing the tests.

-Dan

On Tue, Feb 9, 2016 at 2:55 PM, Sai Boorlagadda <[email protected]>
wrote:

> +1
>
> As setting '0' is the fix for most of the tickets that are fixed in JIRA
> for this exception.
>
> Sai
>
> On Tue, Feb 9, 2016 at 2:39 PM, Kirk Lund <[email protected]> wrote:
>
> > For the C++ client tests, are the ports being used in the Java Server and
> > Locator?
> >
> > -Kirk
> >
> >
> > On Tue, Feb 9, 2016 at 2:01 PM, Jacob Barrett <[email protected]>
> wrote:
> >
> > > +1
> > >
> > > I am dealing with the same issue on some tests on the C++ side that do
> > the
> > > same thing. I had planned to fix it the same way that you proposed.
> > >
> > > Given that there are lots of ports to configure in Geode maybe as those
> > > ports are activated they should be written to a properties file in the
> > > working directory next to the stats, logs, etc. After the server is
> > started
> > > any script or executable should be able to parse that file to find the
> > > ports it needs.
> > >
> > > -Jake
> > >
> > >
> > >
> > >
> > > On Tue, Feb 9, 2016 at 1:09 PM Kirk Lund <[email protected]> wrote:
> > >
> > > > 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
> > > >
> > >
> >
>
>
>
> --
> Sai Boorlagadda
>

Reply via email to