hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Wang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-9788) Incompatible tag renumbering in HeartbeatResponseProto
Date Wed, 10 Feb 2016 22:07:18 GMT

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

Mime
View raw message