hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiang Li (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17997) jruby-complete-1.6.8.jar is in cached_classpath.txt
Date Wed, 24 May 2017 07:17:04 GMT

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

Xiang Li commented on HBASE-17997:
----------------------------------

Hi [~ted_yu], I uploaded patch 001 for master to address the error introduced by patch 000.

Patch 001 has the same idea as HBASE-15199: when it is in dev environment, move jruby-complete
out of the normal process of classpath handling and deal with it separately. The patch 001
creates a new file named as "cached_classpath_jruby.txt" which contains jruby-complete jar
only. When processing classpath in dev environment, it reads the file and adds the jar into
classpath only when jruby is needed (currently hbase shell or hbase org.jruby.Main xxx).

With the patch 001, the logic to handle jruby is:
* For the commands which need jruby
** When JRUBY_HOME is specified explicitly
          CLASSPATH and HBASE_OPTS are updated according to JRUBY_HOME specified.
          It acts the same whenever it is in dev environment or not.
** When JRUBY_HOME is not specified explicitly
*** In dev environment, read cached_classpath_jruby.txt and add the jars in the file into
classpath
*** In non dev environment, add all jars under $HBASE_HOME/lib/ruby to the classpath
* For other commands, do nothing

> jruby-complete-1.6.8.jar is in cached_classpath.txt
> ---------------------------------------------------
>
>                 Key: HBASE-17997
>                 URL: https://issues.apache.org/jira/browse/HBASE-17997
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Xiang Li
>         Attachments: HBASE-17997.master.000.patch, HBASE-17997.master.001.patch
>
>
> HBASE-15199 moves jruby-complete-1.6.8.jar to lib/ruby directory.
> However, jruby-complete-1.6.8.jar still appears in cached_classpath.txt
> This means that user would see exception similar to the following when starting hbase
in  standalone mode with s3a as rootdir :
> {code}
> 2017-05-04 16:41:32,854 WARN  [RpcServer.FifoWFPBQ.priority.handler=18,queue=0,port=38659]
internal.S3MetadataResponseHandler: Unable to parse last modified date: Thu, 04 May 2017 16:27:09
GMT
> java.lang.IllegalStateException: Joda-time 2.2 or later version is required, but found
version: null
>   at com.amazonaws.util.DateUtils.handleException(DateUtils.java:149)
>   at com.amazonaws.util.DateUtils.parseRFC822Date(DateUtils.java:195)
>   at com.amazonaws.services.s3.internal.ServiceUtils.parseRfc822Date(ServiceUtils.java:78)
>   at com.amazonaws.services.s3.internal.AbstractS3ResponseHandler.populateObjectMetadata(AbstractS3ResponseHandler.java:115)
>   at com.amazonaws.services.s3.internal.S3ObjectResponseHandler.handle(S3ObjectResponseHandler.java:52)
>   at com.amazonaws.services.s3.internal.S3ObjectResponseHandler.handle(S3ObjectResponseHandler.java:30)
>   at com.amazonaws.http.AmazonHttpClient.handleResponse(AmazonHttpClient.java:1072)
>   at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:746)
>   at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)
>   at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)
>   at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3785)
>   at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1191)
>   at org.apache.hadoop.fs.s3a.S3AInputStream.reopen(S3AInputStream.java:148)
>   at org.apache.hadoop.fs.s3a.S3AInputStream.lazySeek(S3AInputStream.java:281)
>   at org.apache.hadoop.fs.s3a.S3AInputStream.read(S3AInputStream.java:364)
>   at org.apache.hadoop.fs.FSInputStream.read(FSInputStream.java:75)
>   at org.apache.hadoop.fs.FSDataInputStream.read(FSDataInputStream.java:92)
>   at org.apache.hadoop.hbase.io.hfile.HFileBlock.positionalReadWithExtra(HFileBlock.java:722)
>   at org.apache.hadoop.hbase.io.hfile.HFileBlock$AbstractFSReader.readAtOffset(HFileBlock.java:1420)
>   at org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.readBlockDataInternal(HFileBlock.java:1677)
>   at org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.readBlockData(HFileBlock.java:1504)
>   at org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:439)
>   at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.seekTo(HFileReaderV2.java:904)
>   at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:267)
>   at org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:169)
>   at org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:363)
>   at org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:217)
>   at org.apache.hadoop.hbase.regionserver.HStore.createScanner(HStore.java:2132)
>   at org.apache.hadoop.hbase.regionserver.HStore.getScanner(HStore.java:2122)
>   at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:5687)
>   at org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:2679)
>   at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2665)
>   at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2647)
>   at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6906)
>   at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6885)
>   at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2007)
> {code}



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

Mime
View raw message