hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15199) Move jruby jar so only on hbase-shell module classpath; currently globally available
Date Fri, 05 May 2017 00:03:04 GMT

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

Ted Yu commented on HBASE-15199:
--------------------------------

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)

Mime
View raw message