Sean Busbey created ACCUMULO-4533:
-------------------------------------

             Summary: TraceServer should not abort if trace table exists
                 Key: ACCUMULO-4533
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4533
             Project: Accumulo
          Issue Type: Bug
          Components: trace
    Affects Versions: 1.8.0, 1.7.2, 1.7.1
         Environment: impacts 1.7.0-1.7.2, 1.8.0
            Reporter: Sean Busbey
             Fix For: 1.7.3, 1.8.1


h3. description

On start up, the TraceServer attempts to ensure that the trace table exists.

{code}
        connector = serverConfiguration.getInstance().getConnector(principal, 
at);
        if (!connector.tableOperations().exists(tableName)) {
          connector.tableOperations().create(tableName);
          IteratorSetting setting = new IteratorSetting(10, "ageoff", 
AgeOffFilter.class.getName());
          AgeOffFilter.setTTL(setting, 7 * 24 * 60 * 60 * 1000l);
          connector.tableOperations().attachIterator(tableName, setting);
        }
{code}

The race condition between checking existence and creating the table ought not 
matter, since we're in a big loop that is supposed to retry on any problems.

However, that loop expressly catches {{RuntimeException}} and 
{{TableExistsException}} is not a {{RuntimeException}} so currently the 
exception propagates and kills the server.


h3. workaround

restart any failed trace servers, since the one that won the race condition 
should have finished set up properly.

alternatively, manually create the trace table prior to starting any trace 
servers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to