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)