accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-4412) Race condition in starting proxy for ITs
Date Wed, 17 Aug 2016 19:58:20 GMT


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:

    proxyPort = PortUtils.getRandomFreePort();

    if (0 == r.nextInt(2)) {
      final ServerSocket so = new ServerSocket(proxyPort);
      svc.schedule(new Callable<Void>() {
        public Void call() throws Exception {
"Closing socket");
          return null;
      }, 5, TimeUnit.SECONDS);

> Race condition in starting proxy for ITs
> ----------------------------------------
>                 Key: ACCUMULO-4412
>                 URL:
>             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

View raw message