[
https://issues.apache.org/jira/browse/HDFS-9788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15141763#comment-15141763
]
Uma Maheswara Rao G commented on HDFS-9788:
-------------------------------------------
Good catch Andrew. This patch should work.
+1
As HDFS-7923(the Jira which introduced fullBlockReportLeaseId=4 earlier) is
targeted for 2.8, luckily we found this before 2.8 out. Safely we can change at
this time.
And we need not change in 2.7 versions ant thing as HDFS-9426(the JIRA which
introduced differed numbering for rollingUpgradeStatusV2) was back ported with
lower numbering already.So no compatibility issues there even though 2.7.2 out
already.
I have a question here. What is the best solution for this kind of issues in
the future to avoid? Example if fullBlockReportLeaseId change targeted in 2.8
and if 2.8 is out already. Then changing the numbering would not be easy as
this. How could we control such cases?
> Incompatible tag renumbering in HeartbeatResponseProto
> ------------------------------------------------------
>
> Key: HDFS-9788
> URL: https://issues.apache.org/jira/browse/HDFS-9788
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: rolling upgrades
> Affects Versions: 2.8.0
> Reporter: Andrew Wang
> Assignee: Andrew Wang
> Priority: Blocker
> Attachments: HDFS-9788.001.patch
>
>
> The HDFS-9426 patches for branch-2.7 and branch-2 used different tag numbers
> for {{rollingUpgradeStatusV2}} in HeartbeatResponseProto:
> trunk/branch-2:
> {code}
> message HeartbeatResponseProto {
> repeated DatanodeCommandProto cmds = 1; // Returned commands can be null
> required NNHAStatusHeartbeatProto haStatus = 2;
> optional RollingUpgradeStatusProto rollingUpgradeStatus = 3;
> optional uint64 fullBlockReportLeaseId = 4 [ default = 0 ];
> optional RollingUpgradeStatusProto rollingUpgradeStatusV2 = 5;
> }
> {code}
> branch-2.7:
> {code}
> message HeartbeatResponseProto {
> repeated DatanodeCommandProto cmds = 1; // Returned commands can be null
> required NNHAStatusHeartbeatProto haStatus = 2;
> optional RollingUpgradeStatusProto rollingUpgradeStatus = 3;
> optional RollingUpgradeStatusProto rollingUpgradeStatusV2 = 4;
> }
> {code}
> This breaks rolling upgrade between 2.7 and a future 2.8. We need to renumber
> the tags to preserve wire compatibility.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)