hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chao Sun (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (HDFS-14116) Fix a potential class cast error in ObserverReadProxyProvider
Date Wed, 05 Dec 2018 18:38:00 GMT

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

Chao Sun reassigned HDFS-14116:

    Assignee: Chao Sun

> Fix a potential class cast error in ObserverReadProxyProvider
> -------------------------------------------------------------
>                 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
> 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

To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org

View raw message