[
https://issues.apache.org/jira/browse/HDFS-8656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14600509#comment-14600509
]
Andrew Wang commented on HDFS-8656:
-----------------------------------
Hey Ming, thanks for taking a look. Before HDFS-7645, we'd always return null
if no RU was in progress or if the RU was finalized. HDFS-7645 changed this to
still return an RUInfo after finalization, which is an incompatible change (but
so far unreleased). I think this patch will make it return null again in this
situation, restoring compatibility.
Regarding the new fields, agreed, the new fields aren't that useful since
they're always going to be the same. I'll post a new rev removing them.
I'd like to leave the Precondition check as it's just for extra safety.
> Preserve compatibility of ClientProtocol#rollingUpgrade after finalization
> --------------------------------------------------------------------------
>
> Key: HDFS-8656
> URL: https://issues.apache.org/jira/browse/HDFS-8656
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: rolling upgrades
> Affects Versions: 2.8.0
> Reporter: Andrew Wang
> Assignee: Andrew Wang
> Priority: Critical
> Attachments: hdfs-8656.001.patch, hdfs-8656.002.patch
>
>
> HDFS-7645 changed rollingUpgradeInfo to still return an RUInfo after
> finalization, so the DNs can differentiate between rollback and a
> finalization. However, this breaks compatibility for the user facing APIs,
> which always expect a null after finalization. Let's fix this and edify it in
> unit tests.
> As an additional improvement, isFinalized and isStarted are part of the Java
> API, but not in the JMX output of RollingUpgradeInfo. It'd be nice to expose
> these booleans so JMX users don't need to do the != 0 check that possibly
> exposes our implementation details.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)