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 Tue, 23 May 2017 06:45:04 GMT

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

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

Summarize the logic here:

1. In hbase-assembly/pom.xml, the output file is specified for Maven dependency plug-in, so
that all dependency jars in dev environment are written into the file specified.
{code}
<outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile>
{code}

2. bin/hbase will make good use of that file by reading all jars out and then appending them
into classpath for dev environment
{code}
add_maven_deps_to_classpath() {
  f="${HBASE_HOME}/target/cached_classpath.txt"
  if [ ! -f "${f}" ]
  then
      echo "As this is a development environment, we need ${f} to be generated from maven
(command: mvn install -DskipTests)"
      exit 1
  fi
  CLASSPATH=${CLASSPATH}:`cat "${f}"`  <-- here
}

#Add the development env class path stuff
if $in_dev_env; then
  add_maven_deps_to_classpath
fi
{code}

So that is the reason why jruby-complete jar, being as a dependency of hbase shell, appears
in the classpath of dev environment and leading to the error as described in the "Description"

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