[ https://issues.apache.org/jira/browse/HDFS-16876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simbarashe Dzinamarira updated HDFS-16876: ------------------------------------------ Description: When cleaning up stale connection pools, the ConnectionManager also removes the associated namespace to stateId mapping from the shared RouterStateIdContext. A mapping is only removed when there is no other connectionPool referencing it. When a new connection is created, the stateId mapping gets recreated. Since the RouterStateIdContext is shared across connections, it is cleaner to drive its cleanup using the list of namespaces the router references instead of closely tracking the active connections. was: When cleaning up stale connection pools, the ConnectionManager also removes the associated namespaceStateId from the shared map in the RouterStateIdContext. This is incorrect because this namespaceStateId may still be referenced by other connection pools. The consequences of this premature removal include * No FederatedRouterState being sent back to clients. * PoolAlignmentContext objects keeping references to namespaceStateIds that aren't in the shared map. [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/ConnectionManager.java#L457] > ConnectionManager should not remove namespaceStateIds from the shared > RouterStateIdContext during pool cleanup. > --------------------------------------------------------------------------------------------------------------- > > Key: HDFS-16876 > URL: https://issues.apache.org/jira/browse/HDFS-16876 > Project: Hadoop HDFS > Issue Type: Bug > Components: rbf > Reporter: Simbarashe Dzinamarira > Assignee: Simbarashe Dzinamarira > Priority: Critical > > When cleaning up stale connection pools, the ConnectionManager also removes > the associated namespace to stateId mapping from the shared > RouterStateIdContext. A mapping is only removed when there is no other > connectionPool referencing it. When a new connection is created, the stateId > mapping gets recreated. > Since the RouterStateIdContext is shared across connections, it is cleaner to > drive its cleanup using the list of namespaces the router references instead > of closely tracking the active connections. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org