You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2016/07/05 14:57:11 UTC

[jira] [Updated] (PHOENIX-3025) CsvBulkloadTool is failing with java.lang.IncompatibleClassChangeError

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

Josh Elser updated PHOENIX-3025:
--------------------------------
    Attachment: PHOENIX-3025-addendum.patch

So, at some point in time, I think the phoenix-queryserver module was shading in Guava (and relocating it). I believe when we switched over to pulling these dependencies from the phoenix-client jar, the relocation statement wasn't removed. So, the queryserver module had a relocation configuration statement for classes that weren't actually getting shaded.

This continued to work because the relocation configurations for the shade plugin were equivalent (the client jar shaded guava to the same place the queryserver jar was). Once the original changeset here on PHOENIX-3025 removed the relocation of guava, queryserver failed to find it (because it still had its relocation config).

I tested this patch out locally and it works fine. (The avatica.version removals are unrelated changes -- they are superfluous).

> CsvBulkloadTool is failing with java.lang.IncompatibleClassChangeError
> ----------------------------------------------------------------------
>
>                 Key: PHOENIX-3025
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3025
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Rajeshbabu Chintaguntla
>            Assignee: Sergey Soldatov
>            Priority: Blocker
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-3025-addendum.patch, PHOENIX-3025.patch
>
>
> Getting following error while running CsvBulkloadTool
> {noformat}
> 16/06/24 21:39:14 INFO zookeeper.ClientCnxn: Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x15582fe70650014, negotiated timeout = 40000
> Exception in thread "main" java.sql.SQLException: ERROR 103 (08004): Unable to establish connection.
> 	at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:454)
> 	at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:393)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$300(ConnectionQueryServicesImpl.java:219)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2321)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2300)
> 	at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2300)
> 	at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:231)
> 	at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:135)
> 	at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:202)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:571)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:187)
> 	at org.apache.phoenix.util.QueryUtil.getConnection(QueryUtil.java:340)
> 	at org.apache.phoenix.util.QueryUtil.getConnection(QueryUtil.java:332)
> 	at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.loadData(AbstractBulkLoadTool.java:207)
> 	at org.apache.phoenix.mapreduce.AbstractBulkLoadTool.run(AbstractBulkLoadTool.java:181)
> 	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> 	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
> 	at org.apache.phoenix.mapreduce.CsvBulkLoadTool.main(CsvBulkLoadTool.java:101)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
> 	at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
> Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException
> 	at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240)
> 	at org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:431)
> 	at org.apache.hadoop.hbase.client.ConnectionManager.createConnectionInternal(ConnectionManager.java:340)
> 	at org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:144)
> 	at org.apache.phoenix.query.HConnectionFactory$HConnectionFactoryImpl.createConnection(HConnectionFactory.java:47)
> 	at org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:391)
> 	... 23 more
> Caused by: java.lang.reflect.InvocationTargetException
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> 	at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238)
> 	... 28 more
> Caused by: java.lang.IncompatibleClassChangeError: Class org.apache.hadoop.hbase.protobuf.generated.ClusterIdProtos$ClusterId$Builder does not implement the requested interface org.apache.phoenix.shaded.com.google.protobuf.Message$Builder
> 	at org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(ProtobufUtil.java:3180)
> 	at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:69)
> 	at org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode(ZKClusterId.java:75)
> 	at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId(ZooKeeperRegistry.java:105)
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.retrieveClusterId(ConnectionManager.java:905)
> 	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:648)
> 	... 33 more
> {noformat}
> [~sergey.soldatov] any idea? ping [~ankit@apache.org] It seems like blocker for release.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)