[ 
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)

Reply via email to