[ 
https://issues.apache.org/jira/browse/HBASE-11118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nick Dimiduk updated HBASE-11118:
---------------------------------

    Attachment: 11118.098-0.txt

Hi [~stack]. Taking 11118.098.txt for a spin. I applied the patch to 0.98 and 
launched local mode. I'm seeing this in my log

{noformat}
2014-07-02 13:24:53,899 ERROR [htable-pool9-t1] client.AsyncProcess: #6, Caught 
throwable while calling. This is unexpected. Retrying. Server is 
10.11.5.156,54722,1404332679793, tableName=hbase:meta
java.lang.RuntimeException: java.lang.StackOverflowError
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:188)
        at 
org.apache.hadoop.hbase.client.AsyncProcess$1.run(AsyncProcess.java:543)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.StackOverflowError
        at org.apache.hadoop.hbase.util.ByteStringer.wrap(ByteStringer.java:65)
        at org.apache.hadoop.hbase.util.ByteStringer.wrap(ByteStringer.java:65)
        at org.apache.hadoop.hbase.util.ByteStringer.wrap(ByteStringer.java:65)
...
{noformat}

Attaching a fixed patch, simple interdiff:

{noformat}
diff -u 
b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/util/ByteStringer.java 
b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/util/ByteStringer.java
--- 
b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/util/ByteStringer.java
+++ 
b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/util/ByteStringer.java
@@ -62,7 +62,7 @@
    * Wraps a subset of a byte array in a {@link ByteString} without copying it.
    */
   public static ByteString wrap(final byte[] array, int offset, int length) {
-    return USE_ZEROCOPYBYTESTRING? ByteStringer.wrap(array, offset, length):
+    return USE_ZEROCOPYBYTESTRING? HBaseZeroCopyByteString.wrap(array, offset, 
length):
       ByteString.copyFrom(array, offset, length);
   }
 }
{noformat}

I also updated the hbase-fatjar to include the apache repo to make it easier to 
test snapshots.

> non environment variable solution for "IllegalAccessError: class 
> com.google.protobuf.ZeroCopyLiteralByteString cannot access its superclass 
> com.google.protobuf.LiteralByteString"
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-11118
>                 URL: https://issues.apache.org/jira/browse/HBASE-11118
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.2
>            Reporter: André Kelpe
>            Priority: Blocker
>             Fix For: 0.99.0
>
>         Attachments: 11118.098-0.txt, 11118.098.txt, 11118.bytestringer.txt, 
> 1118.suggested.undoing.optimization.on.clientside.txt, 
> 1118.suggested.undoing.optimization.on.clientside.txt, 
> HBASE-11118-0.98.patch.gz, HBASE-11118-trunk.patch.gz, shade_attempt.patch
>
>
> I am running into the problem described in 
> https://issues.apache.org/jira/browse/HBASE-10304, while trying to use a 
> newer version within cascading.hbase 
> (https://github.com/cascading/cascading.hbase).
> One of the features of cascading.hbase is that you can use it from lingual 
> (http://www.cascading.org/projects/lingual/), our SQL layer for hadoop. 
> lingual has a notion of providers, which are fat jars that we pull down 
> dynamically at runtime. Those jars give users the ability to talk to any 
> system or format from SQL. They are added to the classpath  programmatically 
> before we submit jobs to a hadoop cluster.
> Since lingual does not know upfront , which providers are going to be used in 
> a given run, the HADOOP_CLASSPATH trick proposed in the JIRA above is really 
> clunky and breaks the ease of use we had before. No other provider requires 
> this right now.
> It would be great to have a programmatical way to fix this, when using fat 
> jars.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to