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)

Reply via email to