[
https://issues.apache.org/jira/browse/ACCUMULO-4600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15901504#comment-15901504
]
Christopher Tubbs commented on ACCUMULO-4600:
---------------------------------------------
I agree. Clients don't need to know where instance volumes are, in general.
Unfortunately, in this case, that's exactly what makes the shell different.
I think the problem is in {{Shell.getZooInstance(...)}}. There, it is trying to
read the instance ID from HDFS, but it's using the client config to determine
the volumes to inspect, rather than the site config. In {{ShellOptionsJC}}, we
handle a similar case by wrapping the client config with a
{{SiteConfiguration}} so we can fall back to the ZK hosts in the site file when
its missing from the {{ClientConfiguration}}, but we're not doing that here for
the fallback volumes when the instance name is missing from the
{{ClientConfiguration}} so we can get the instanceID.
> Shell does not fall back to accumulo-site.xml when on classpath
> ---------------------------------------------------------------
>
> Key: ACCUMULO-4600
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4600
> Project: Accumulo
> Issue Type: Bug
> Components: shell
> Affects Versions: 1.7.3
> Reporter: Josh Elser
> Priority: Critical
>
> When inspecting 1.7.3-rc1 for the VOTE, I did the following steps:
> * Unpack bin-tarball
> * Copy 3gb native example confs
> * Set {{instance.volumes}} in accumulo-site.xml to
> {{hdfs://localhost:8020/accumulo173rc1}}
> * {{export ACCUMULO_HOME="$(pwd)"}}
> * {{./bin/accumulo init}}
> * {{./bin/start-all.sh}}
> * {{./bin/accumulo shell -u root}}
> The shell failed to connect stating that no tservers were running. By turning
> on the debug option to the shell, I could see that the wrong HDFS directory
> was being used to find the Accumulo instance ID, {{/accumulo}} instead of
> {{/accumulo173rc1}}.
> This appears to be because of
> {{ClientContext#convertClientConfig(Configuration)}} and
> {{Shell#getZooInstance(String, String, ClientConfiguration}}. The client
> configuration is empty, therefore, all values end up being pulled from the
> {{DefaultConfiguration}} instance instead of the accumulo-site.xml which is
> on the classpath.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)