Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 73F8C200B93 for ; Fri, 16 Sep 2016 18:36:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 72C77160AB7; Fri, 16 Sep 2016 16:36:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BA389160AC4 for ; Fri, 16 Sep 2016 18:36:21 +0200 (CEST) Received: (qmail 93581 invoked by uid 500); 16 Sep 2016 16:36:20 -0000 Mailing-List: contact notifications-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jira@apache.org Delivered-To: mailing list notifications@accumulo.apache.org Received: (qmail 93542 invoked by uid 99); 16 Sep 2016 16:36:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Sep 2016 16:36:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 877F32C1B81 for ; Fri, 16 Sep 2016 16:36:20 +0000 (UTC) Date: Fri, 16 Sep 2016 16:36:20 +0000 (UTC) From: "Michael Miller (JIRA)" To: notifications@accumulo.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ACCUMULO-4444) NullPointerException when password not given to TraceTableStats MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 16 Sep 2016 16:36:22 -0000 [ 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.(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)