You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Chinmay Kulkarni (Jira)" <ji...@apache.org> on 2019/12/21 00:54:09 UTC

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

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

Chinmay Kulkarni closed PHOENIX-4946.
-------------------------------------

Bulk closing Jiras for the 4.15.0 release.

> 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
>            Priority: Major
>             Fix For: 4.15.0, 5.1.0
>
>         Attachments: PHOENIX-4946.001.patch
>
>
> 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
(v8.3.4#803005)