You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jesse Yates (JIRA)" <ji...@apache.org> on 2013/03/14 18:24:12 UTC

[jira] [Comment Edited] (HBASE-8025) zkcli fails when SERVER_GC_OPTS is enabled

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

Jesse Yates edited comment on HBASE-8025 at 3/14/13 5:22 PM:
-------------------------------------------------------------

Yeah, for even something like:
{code}
 #default to server opts
 GC_OPTS=$SERVER_GC_OPTS

 if [ "$COMMAND" = "shell" ] ; then
   # eg export JRUBY_HOME=/usr/local/share/jruby
   if [ "$JRUBY_HOME" != "" ] ; then
     CLASSPATH="$JRUBY_HOME/lib/jruby.jar:$CLASSPATH"
     HBASE_OPTS="$HBASE_OPTS -Djruby.home=$JRUBY_HOME -Djruby.lib=$JRUBY_HOME/lib"
     GC_OPTS=$CLIENT_GC_OPTS
   fi
 elif [ "$COMMAND" = "hbck" ] ; then
   CLASS='org.apache.hadoop.hbase.util.HBaseFsck'
   GC_OPTS=$CLIENT_GC_OPTS
...

   HBASE_OPTS="$HBASE_OPTS $GC_OPTS"
{code}
                
      was (Author: jesse_yates):
    Yeah, for even something like:
{code}
 #default to server opts
 GC_OPTS=$SERVER_GC_OPTS

 if [ "$COMMAND" = "shell" ] ; then
   # eg export JRUBY_HOME=/usr/local/share/jruby
   if [ "$JRUBY_HOME" != "" ] ; then
     CLASSPATH="$JRUBY_HOME/lib/jruby.jar:$CLASSPATH"
     HBASE_OPTS="$HBASE_OPTS -Djruby.home=$JRUBY_HOME -Djruby.lib=$JRUBY_HOME/lib"
     GC_OPTS=$CLIENT_GC_OPTS
   fi
 elif [ "$COMMAND" = "hbck" ] ; then
   CLASS='org.apache.hadoop.hbase.util.HBaseFsck'
   GC_OPTS=$CLIENT_GC_OPTS
...

   HBASE_OPTS="$HBASE_OPTS $GC_OPTS -Djruby.home=$JRUBY_HOME -Djruby.lib=$JRUBY_HOME/lib"
{code}
                  
> zkcli fails when SERVER_GC_OPTS is enabled
> ------------------------------------------
>
>                 Key: HBASE-8025
>                 URL: https://issues.apache.org/jira/browse/HBASE-8025
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.4
>            Reporter: Dave Latham
>            Assignee: Dave Latham
>             Fix For: 0.95.0, 0.98.0, 0.94.6
>
>         Attachments: 8025-alt.txt, HBASE-8025-0.94.patch
>
>
> HBASE-7091 added logic to separate GC logging options for some client commands versus server commands.  It uses a list of known client commands ("shell" "hbck" "hlog" "hfile" "zkcli") and uses the server GC logging options for all other invocations of bin/hbase.  When zkcli is invoked, it in turn invokes "hbase org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServerArg" to gather the server command line arguments, but because org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServerArg is not on the white list it enables server GC logging, which causes extra output that causes the zkcli invocation to break.  HBASE-7153 addressed this but the fix only solved the array syntax - not the white list, so the zkcli command still fails.
> There are many other tools you can invoke that are more likely to "client" than "server" options. For example, "bin/hbase org.jruby.Main region_mover.rb" or "bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable" or "bin/hbase version" or "bin/hbase org.apache.hadoop.hbase.mapreduce.Export". The whitelist of server commands is shorter and easier to maintain than a whitelist of client commands.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira