You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Christopher Tubbs (JIRA)" <ji...@apache.org> on 2017/02/10 22:45:42 UTC

[jira] [Resolved] (ACCUMULO-4533) TraceServer should not abort if trace table exists

     [ https://issues.apache.org/jira/browse/ACCUMULO-4533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christopher Tubbs resolved ACCUMULO-4533.
-----------------------------------------
       Resolution: Fixed
    Fix Version/s:     (was: 1.8.2)
                   1.8.1

I can't seem to reproduce the error I saw in the master branch, so I'm just going to assume that the problem I saw was my own mistake. If it happens again, perhaps on an earlier branch, I'll open a new issue. I'm closing this one either way.

> 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.7.1, 1.7.2, 1.8.0
>         Environment: impacts 1.7.0-1.7.2, 1.8.0
>            Reporter: Sean Busbey
>            Assignee: Sean Busbey
>             Fix For: 1.7.3, 1.8.1, 2.0.0
>
>         Attachments: ACCUMULO-4533-1.7.v1.patch, ACCUMULO-4533-1.7.v2.patch
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> 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.15#6346)