[
https://issues.apache.org/jira/browse/ACCUMULO-4412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15425244#comment-15425244
]
Josh Elser commented on ACCUMULO-4412:
--------------------------------------
I have a test-only fix for this. Was able to verify that it works doing a
little trick:
{code}
proxyPort = PortUtils.getRandomFreePort();
if (0 == r.nextInt(2)) {
final ServerSocket so = new ServerSocket(proxyPort);
svc.schedule(new Callable<Void>() {
public Void call() throws Exception {
log.info("Closing socket");
so.close();
return null;
}
}, 5, TimeUnit.SECONDS);
}
{code}
> Race condition in starting proxy for ITs
> ----------------------------------------
>
> Key: ACCUMULO-4412
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4412
> Project: Accumulo
> Issue Type: Bug
> Components: proxy, test
> Reporter: Josh Elser
> Assignee: Josh Elser
> Priority: Minor
> Fix For: 1.7.3, 1.8.1
>
>
> Had a test failure last night in KerberosProxyIT. It seems the following
> happened
> # Bind a server socket using '0' (pull a free port from the ephemeral range)
> # Determine the actual port which was bound
> # Close the socket
> # Another process grabbed the port we had bound
> # Attempt to start the proxy on that port
> The proxy failed to start because the port we provided was already taken.
> This stems from a problem that we can't have the Proxy bind to any free port
> and figure out where it started (what port it actually bound); maybe we could
> provide configuration to advertise this in ZooKeeper (will file another
> issue). For this test, if we fail to connect to the proxy and the proxy is
> dead, we can try to re-start the proxy with a different port. Given how rare
> this scenario is, hopefully retrying it takes the chance it happens again to
> effectively 0%.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)