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 2018/10/03 15:44:00 UTC

[jira] [Created] (PHOENIX-4946) Super old httpclient version in phoenix-core causes NoClassDefFoundError when Hadoop KMS is enabled

Josh Elser created PHOENIX-4946:
-----------------------------------

             Summary: Super old httpclient version in phoenix-core causes NoClassDefFoundError when Hadoop KMS is enabled
                 Key: PHOENIX-4946
                 URL: https://issues.apache.org/jira/browse/PHOENIX-4946
             Project: Phoenix
          Issue Type: Bug
            Reporter: Josh Elser
            Assignee: Josh Elser
             Fix For: 5.1.0


We have a super-old version of org.apache.httpcomponents:httpclient in phoenix-core of 4.0.1. With Hadoop3, this appears to exclude out 4.5.2 which comes in transitively.

When using the Hadoop KMS provider, you'll see an error like:
{noformat}
java.lang.NoClassDefFoundError: org/apache/phoenix/shaded/org/apache/http/client/utils/URIBuilder
at org.apache.hadoop.crypto.key.kms.KMSClientProvider.createURL(KMSClientProvider.java:437)
at org.apache.hadoop.crypto.key.kms.KMSClientProvider.addDelegationTokens(KMSClientProvider.java:1032)
at org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider$1.call(LoadBalancingKMSClientProvider.java:193)
at org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider$1.call(LoadBalancingKMSClientProvider.java:190)
at org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider.doOp(LoadBalancingKMSClientProvider.java:123)
at org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider.addDelegationTokens(LoadBalancingKMSClientProvider.java:190)
at org.apache.hadoop.crypto.key.KeyProviderDelegationTokenExtension.addDelegationTokens(KeyProviderDelegationTokenExtension.java:110)
at org.apache.hadoop.hdfs.HdfsKMSUtil.addDelegationTokensForKeyProvider(HdfsKMSUtil.java:84)
at org.apache.hadoop.hdfs.DistributedFileSystem.addDelegationTokens(DistributedFileSystem.java:2821)
{noformat}
It seems like we have no good reason to depend on an old version of httpclient.

Avatica is on 4.5.2 by default, but we can probably just go directly to the latest which is 4.5.6.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)