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 19:37:41 UTC

[jira] [Comment Edited] (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:comment-tabpanel&focusedCommentId=15861731#comment-15861731 ] 

Christopher Tubbs edited comment on ACCUMULO-4533 at 2/10/17 7:37 PM:
----------------------------------------------------------------------

Does anybody who previously looked at this issue interested at all in addressing the problem it caused, documented in my previous comment?
It looks like 1.8.1 was already released with this patch. I guess we can release 1.7.3 with it also, and just create a follow on issue.

Any opinions? [~busbey] [~elserj] [~mdrob]


was (Author: ctubbsii):
Does anybody who previously looked at this issue interested at all in addressing the problem it caused, documented in my previous comment?
It looks like 1.8.1 was already released with this patch. I guess we can release 1.7.3 with it also, and just create a follow on issue.

Any opinions?

> 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.2, 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)