You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Konstantin Shvachko (JIRA)" <ji...@apache.org> on 2018/12/18 00:41:00 UTC
[jira] [Resolved] (HDFS-14116) ObserverReadProxyProvider should
work with protocols other than ClientProtocol
[ https://issues.apache.org/jira/browse/HDFS-14116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Konstantin Shvachko resolved HDFS-14116.
----------------------------------------
Resolution: Fixed
Hadoop Flags: Reviewed
Pushed to HDFS-12943 branch. Thanks everybody.
> ObserverReadProxyProvider should work with protocols other than ClientProtocol
> ------------------------------------------------------------------------------
>
> Key: HDFS-14116
> URL: https://issues.apache.org/jira/browse/HDFS-14116
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: hdfs-client
> Reporter: Chen Liang
> Assignee: Chao Sun
> Priority: Major
> Fix For: HDFS-12943
>
> Attachments: HDFS-14116-HDFS-12943.000.patch, HDFS-14116-HDFS-12943.001.patch, HDFS-14116-HDFS-12943.002.patch, HDFS-14116-HDFS-12943.003.patch, HDFS-14116-HDFS-12943.004.patch, HDFS-14116-HDFS-12943.005.patch
>
>
> Currently in {{ObserverReadProxyProvider}} constructor there is this line
> {code}
> ((ClientHAProxyFactory<T>) factory).setAlignmentContext(alignmentContext);
> {code}
> This could potentially cause failure, because it is possible that factory can not be casted here. Specifically, {{NameNodeProxiesClient.createFailoverProxyProvider}} is where the constructor will be called, and there are two paths that could call into this:
> (1).{{NameNodeProxies.createProxy}}
> (2).{{NameNodeProxiesClient.createFailoverProxyProvider}}
> (2) works fine because it always uses {{ClientHAProxyFactory}} but (1) uses {{NameNodeHAProxyFactory}} which can not be casted to {{ClientHAProxyFactory}}, this happens when, for example, running NNThroughputBenmarck. To fix this we can at least:
> 1. introduce setAlignmentContext to HAProxyFactory which is the parent of both ClientHAProxyFactory and NameNodeHAProxyFactory OR
> 2. only setAlignmentContext when it is ClientHAProxyFactory by, say, having a if check with reflection.
> Depending on whether it make sense to have alignment context for the case (1) calling code paths.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org