hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yong Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10494) hadoop2 class reference in Maven Central's hbase-client-0.96.1.1-hadoop1
Date Sat, 22 Feb 2014 03:50:19 GMT

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

Yong Zhang commented on HBASE-10494:
------------------------------------

The maven for HBase 0.94.16 had the same problem. It broken in the same ClassNotFoundException.
I changed the version to 0.94.15 and it worked fine.

> hadoop2 class reference in Maven Central's hbase-client-0.96.1.1-hadoop1
> ------------------------------------------------------------------------
>
>                 Key: HBASE-10494
>                 URL: https://issues.apache.org/jira/browse/HBASE-10494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.96.1.1
>         Environment: Only affects jar on Maven Central.  Jar in the hadoop1 tarball download
is not affected.
>            Reporter: Dan LaRocque
>            Priority: Minor
>
> RpcClient$Connection.class as shipped in the hbase-client-0.96.1.1-hadoop1 jar on Maven
Central contains references to org.apache.hadoop.net.SocketInputWrapper. I think this class
does not exist in hadoop1 because a classfile search of central yields hits only on 2.0 and
0.23.  There may be other references.  I only know about this one because it was killing my
HRegionServer early with this exception:
> {noformat}
> 2014-02-10 20:55:52,021 INFO  [M:0;dalarolap:48768] master.ServerManager: Waiting for
region servers count to settle; currently checked in 0, slept for 0 ms, expecting minimum
of 1, maximum of 2147483647, timeout of 4500 ms, interval of 1500 ms.
> 2014-02-10 20:55:52,066 WARN  [RS:0;dalarolap:33703] regionserver.HRegionServer: error
telling master we are up
> com.google.protobuf.ServiceException: java.lang.NoClassDefFoundError: org/apache/hadoop/net/SocketInputWrapper
>         at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1670)
>         at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1711)
>         at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$BlockingStub.regionServerStartup(RegionServerStatusProtos.java:5402)
>         at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:1926)
>         at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:784)
>         at java.lang.Thread.run(Thread.java:744)
> Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/net/SocketInputWrapper
>         at org.apache.hadoop.hbase.ipc.RpcClient.createConnection(RpcClient.java:348)
>         at org.apache.hadoop.hbase.ipc.RpcClient.getConnection(RpcClient.java:1522)
>         at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1424)
>         at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1653)
>         ... 5 more
> Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.net.SocketInputWrapper
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
>         ... 9 more
> {noformat}
> I first stumbled over this while developing an app managed by Maven that depends on hbase-client,
but then reproduced it by extracting the hadoop1 tarball and replacing the client jar with
the same-named one from Maven Central.
> I think this is not the same as HBASE-7269, although the stacktrace is  similar.
> Here's a disassembler grep on the Maven Central copy showing some references:
> {noformat}
> # From the root of an extracted hbase-client-0.96.1.1-hadoop1 jar downloaded from Maven
Central
> client-maven$ javap -verbose 'org/apache/hadoop/hbase/ipc/RpcClient$Connection.class'
| grep SocketInputWrapper
>    #198 = Methodref          #744.#818    //  org/apache/hadoop/net/NetUtils.getInputStream:(Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper;
>    #818 = NameAndType        #1115:#1159  //  getInputStream:(Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper;
>   #1159 = Utf8               (Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper;
>        180: invokestatic  #198                // Method org/apache/hadoop/net/NetUtils.getInputStream:(Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper;
> {noformat}
> Here's the same grep on the tarball's copy.  No references.
> {noformat}
> # Same as above, but using jar from the download tarball for hadoop1
> client-tarball$ javap -verbose 'org/apache/hadoop/hbase/ipc/RpcClient$Connection.class'
| grep SocketInputWrapper
> client-tarball$ 
> {noformat}
> What do you think?



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message