[ 
https://issues.apache.org/jira/browse/HDFS-9788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15141787#comment-15141787
 ] 

Andrew Wang commented on HDFS-9788:
-----------------------------------

Thanks Uma. I think the rule is: never change the PB tag number when 
backporting. Tag numbers don't need to be monotonic, so we could have done 
{{rollingUpgradeStatusV2 = 5;}} in the branch-2.7 backport even though 
{{fullBlockReportLeaseId = 4;}} isn't present.

This is a good reminder to check the PBs very carefully for each release. I 
wonder if there is a way to automate this check? I see YARN-3330 which has a 
python script, but looks like it's not reviewed yet.

> 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)

Reply via email to