accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Miller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-4444) NullPointerException when password not given to TraceTableStats
Date Fri, 16 Sep 2016 16:36:20 GMT

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

Michael Miller commented on ACCUMULO-4444:
------------------------------------------

Yeah I thought of that as well yesterday when looking at how to get ClientOpts to prompt for
a password. The ChangeSecret tool does it by passing empty "--" parameters to JCommander and
lets JCommander prompt for the password. 

I don't know the history but the way the tools are written now is pretty clunky and not very
accessible. Like if the tool isn't mentioned specifically in the User guide or printed by
accumulo script, how will they find it? It would be nice to have a way for CLI to list available
tools.

> NullPointerException when password not given to TraceTableStats
> ---------------------------------------------------------------
>
>                 Key: ACCUMULO-4444
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4444
>             Project: Accumulo
>          Issue Type: Bug
>          Components: trace
>    Affects Versions: 1.7.2, 1.8.0
>         Environment: 1.7.2 cluster
>            Reporter: Sean Busbey
>            Assignee: Michael Miller
>            Priority: Critical
>             Fix For: 1.7.3, 1.8.1, 2.0.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> I'm trying to follow the [admin guide on tracing|https://accumulo.apache.org/1.7/accumulo_user_manual#_viewing_collected_traces],
specifically with the {{TraceTableStats}} command.
> In attempting to get prompted for the password, I provided a username and no password,
which resulted in a NullPointerException.
> {code}
> $ accumulo org.apache.accumulo.tracer.TraceTableStats -i accumulo -u foobar
> 2016-09-01 11:05:47,420 [conf.ConfigSanityCheck] WARN : Use of instance.dfs.uri and instance.dfs.dir
are deprecated. Consider using instance.volumes instead.
> 2016-09-01 11:05:47,564 [client.ClientConfiguration] WARN : Found no client.conf in default
paths. Using default client configuration values.
> 2016-09-01 11:05:47,567 [client.ClientConfiguration] WARN : Found no client.conf in default
paths. Using default client configuration values.
> 2016-09-01 11:05:47,720 [start.Main] ERROR: Thread 'org.apache.accumulo.tracer.TraceTableStats'
died.
> java.lang.NullPointerException
>         at org.apache.accumulo.core.client.impl.ConnectorImpl.<init>(ConnectorImpl.java:59)
>         at org.apache.accumulo.core.client.ZooKeeperInstance.getConnector(ZooKeeperInstance.java:248)
>         at org.apache.accumulo.core.cli.ClientOpts.getConnector(ClientOpts.java:315)
>         at org.apache.accumulo.tracer.TraceTableStats.count(TraceTableStats.java:75)
>         at org.apache.accumulo.tracer.TraceTableStats.main(TraceTableStats.java:71)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at org.apache.accumulo.start.Main$2.run(Main.java:157)
>         at java.lang.Thread.run(Thread.java:745)
> {code}
> The impacted line is checking to see if the credential has expired, without checking
to see if there is a credential in the first place, I think?
> {code}
> 57  public ConnectorImpl(final ClientContext context) throws AccumuloException, AccumuloSecurityException
{
> 58    checkArgument(context != null, "context is null");
> 59    if (context.getCredentials().getToken().isDestroyed())
> 60      throw new AccumuloSecurityException(context.getCredentials().getPrincipal(),
SecurityErrorCode.TOKEN_EXPIRED);
> {code}



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

Mime
View raw message