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

Ted Yu edited comment on HBASE-15199 at 5/5/17 12:09 AM:
---------------------------------------------------------

The above procedure allows shell to work.
However, there is a catch - if JRUBY_HOME is set as environment variable and 
you use bin/start-hbase.sh, the jruby jar would appear in the classpath:

java.class.path=/a/jruby-1.6.8/lib/jruby.jar

leading to the following exception when rootdir is on s3(a):
{code}
2017-05-04 23:53:48,192 FATAL [cn012:46854.activeMasterManager] master.HMaster: 
Failed to become active master
java.nio.file.AccessDeniedException: : getFileStatus on : 
com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires 
a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error 
Code: AccessDenied; Request ID: B1725B25836D2604), S3 Extended Request ID: 
f8+vQ1XvtF3iCC9RBCtOnsQrMdQTvWSJb930LTkS4BJxRqZHuUNoI/fFELMV8ndMBnYgRp4x91g=
  at org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:158)
  at 
org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:1635)
  at 
org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:117)
  at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1447)
  at org.apache.hadoop.fs.s3a.S3AFileSystem.exists(S3AFileSystem.java:2040)
  at 
org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:462)
  at 
org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:162)
  at 
org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:142)
  at 
org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:724)
{code}
Should we document this ?
If so, I can open a JIRA.


was (Author: yuzhih...@gmail.com):
The above procedure allows shell to work.
However, there is a catch - if JRUBY_HOME is set as environment variable and 
you use bin/start-hbase.sh, the jruby jar would appear in the classpath:

java.class.path=/a/jruby-1.6.8/lib/jruby.jar

leading to the following exception:
{code}
2017-05-04 23:53:48,192 FATAL [cn012:46854.activeMasterManager] master.HMaster: 
Failed to become active master
java.nio.file.AccessDeniedException: : getFileStatus on : 
com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires 
a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error 
Code: AccessDenied; Request ID: B1725B25836D2604), S3 Extended Request ID: 
f8+vQ1XvtF3iCC9RBCtOnsQrMdQTvWSJb930LTkS4BJxRqZHuUNoI/fFELMV8ndMBnYgRp4x91g=
  at org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:158)
  at 
org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:1635)
  at 
org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:117)
  at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1447)
  at org.apache.hadoop.fs.s3a.S3AFileSystem.exists(S3AFileSystem.java:2040)
  at 
org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:462)
  at 
org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:162)
  at 
org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:142)
  at 
org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:724)
{code}
Should we document this ?
If so, I can open a JIRA.

> Move jruby jar so only on hbase-shell module classpath; currently globally 
> available
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-15199
>                 URL: https://issues.apache.org/jira/browse/HBASE-15199
>             Project: HBase
>          Issue Type: Task
>          Components: dependencies, jruby, shell
>            Reporter: stack
>            Assignee: Xiang Li
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: 15199.txt, HBASE-15199.master.001.patch, 
> HBASE-15199.master.002.patch, HBASE-15199.master.003.patch
>
>
> A suggestion that came up out of internal issue (filed by Mr Jan Van Besien) 
> was to move the scope of the jruby include down so it is only a dependency 
> for the hbase-shell. jruby jar brings in a bunch of dependencies (joda time 
> for example) which can clash with the includes of others. Our Sean suggests 
> that could be good to shut down exploit possibilities if jruby was not 
> globally available. Only downside I can think is that it may no longer be 
> available to our bin/*rb scripts if we move the jar but perhaps these can be 
> changed so they can find the ruby jar in new location.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to