You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Baiqiang Zhao (Jira)" <ji...@apache.org> on 2021/05/07 03:32:00 UTC

[jira] [Created] (HBASE-25861) Correct the usage of Configuration#addDeprecation

Baiqiang Zhao created HBASE-25861:
-------------------------------------

             Summary: Correct the usage of Configuration#addDeprecation
                 Key: HBASE-25861
                 URL: https://issues.apache.org/jira/browse/HBASE-25861
             Project: HBase
          Issue Type: Bug
            Reporter: Baiqiang Zhao
            Assignee: Baiqiang Zhao


When I was solving HBASE-25745 ([PR3139|https://github.com/apache/hbase/pull/3139]), I found that our use of Configuration#addDeprecation API was wrong. 

 

At present, we will call Configuration#addDeprecation in the static block for the deprecated configuration. But after testing, it is found that this does not complete backward compatibility. When user upgrades HBase and does not change the deprecated configuration to the new configuration, he will find that the deprecated configuration does not effect, which may not be consistent with expectations. The specific test results can be seen in the PR above, and we can found the calling order of Configuration#addDeprecation is very important.

 

Configuration#addDeprecation is a Hadoop API, looking through the Hadoop source code, we will find that before creating the Configuration object, the addDeprecatedKeys() method will be called first: [https://github.com/apache/hadoop/blob/b93e448f9aa66689f1ce5059f6cdce8add130457/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/HdfsConfiguration.java#L34] .



--
This message was sent by Atlassian Jira
(v8.3.4#803005)