[
https://issues.apache.org/jira/browse/HDFS-17514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844858#comment-17844858
]
ASF GitHub Bot commented on HDFS-17514:
---------------------------------------
simbadzina commented on code in PR #6804:
URL: https://github.com/apache/hadoop/pull/6804#discussion_r1594952346
##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/PoolAlignmentContext.java:
##########
@@ -64,7 +64,11 @@ public void
updateResponseState(RpcHeaderProtos.RpcResponseHeaderProto.Builder h
*/
@Override
public void receiveResponseState(RpcHeaderProtos.RpcResponseHeaderProto
header) {
- sharedGlobalStateId.accumulate(header.getStateId());
+ if (header.getStateId() == 0 && sharedGlobalStateId.get() > 0) {
Review Comment:
The tests in TestNoNamenodesAvailableLongTime rely on the router allowing a
stateId of 0. So having `sharedGlobalStateId.get() > 0` allows this behavior
which guarding against when the sharedGlobalStateId has advances beyond zero.
The tests in `TestNoNamenodesAvailableLongTime` do need to be fixed but I
would like to limit the scope of this PR.
> RBF: Routers keep using cached stateID even when active NN returns unset
> header
> -------------------------------------------------------------------------------
>
> Key: HDFS-17514
> URL: https://issues.apache.org/jira/browse/HDFS-17514
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: rbf
> Reporter: Simbarashe Dzinamarira
> Assignee: Simbarashe Dzinamarira
> Priority: Minor
> Labels: pull-request-available
>
> When a namenode that had "dfs.namenode.state.context.enabled" set to true is
> restarted with the configuration set to false, routers will keep using a
> previously cached state ID.
> Without RBF
> * clients that fetched the old stateID could have stale reads even after
> msyncing
> * new clients will go to the active.
> With RBF
> * client that fetched the old stateID could have stale reads like above.
> * New clients will also fetch the stale stateID and potentially have stale
> reads
> New clients that are created after the restart should not fetch the stale
> state ID.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]