accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-4533) TraceServer should not abort if trace table exists
Date Fri, 10 Feb 2017 19:52:41 GMT

    [ https://issues.apache.org/jira/browse/ACCUMULO-4533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15861765#comment-15861765
] 

Josh Elser commented on ACCUMULO-4533:
--------------------------------------

bq. We should be able to tell whether the failure is temporal and we should retry, in the
case of the master not yet running, or if the failure is permanent and there's no chance of
success, like if the tracer credentials are insufficient to create a table.

Agreed. We should be able to do this. You don't happen to have the error message anymore,
do you?

Can try to look at it over the weekend..

> 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)

Mime
View raw message