You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2014/10/08 23:22:34 UTC

[jira] [Commented] (ACCUMULO-3214) NPE checking if replication is enabled during tablet assignment

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

Josh Elser commented on ACCUMULO-3214:
--------------------------------------

So, it looks like this could happen if tablet assignment tried to happen when the table was deleted?

{code:title=ServerConfigurationFactory.java}
  public TableConfiguration getTableConfiguration(String tableId) {
    checkPermissions();
    synchronized (tableConfigs) {
      TableConfiguration conf = tableConfigs.get(instanceID).get(tableId);
      if (conf == null && Tables.exists(instance, tableId)) {
        conf = new TableConfiguration(instance.getInstanceID(), tableId, getNamespaceConfigurationForTable(tableId));
        ConfigSanityCheck.validate(conf);
        tableConfigs.get(instanceID).put(tableId, conf);
      }
      return conf;
    }
  }
{code}

I don't see any other way to get a null AccumuloConfiguration otherwise. I'm surprised that a tserver was trying to assign a tablet for a table that was deleted, though...

> NPE checking if replication is enabled during tablet assignment
> ---------------------------------------------------------------
>
>                 Key: ACCUMULO-3214
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3214
>             Project: Accumulo
>          Issue Type: Bug
>          Components: replication, tserver
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Minor
>             Fix For: 1.7.0
>
>
> In the Tablet constructor, the generated AccumuloConfiguration happened to be null
> {noformat}
> 2014-10-08 13:43:08,550 [tserver.TabletServer] WARN : exception trying to assign tablet 2y<< hdfs://node1.example.com:8020/apps/accumulo/tables/2y/default_tablet
> java.lang.NullPointerException
>         at org.apache.accumulo.core.replication.ReplicationConfigurationUtil.isEnabled(ReplicationConfigurationUtil.java:39)
>         at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1285)
>         at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1264)
>         at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1120)
>         at org.apache.accumulo.tserver.Tablet.<init>(Tablet.java:1097)
>         at org.apache.accumulo.tserver.TabletServer$AssignmentHandler.run(TabletServer.java:2932)
>         at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
>         at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47)
>         at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34)
>         at java.lang.Thread.run(Thread.java:745)
> {noformat}



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