kazan created HDFS-17813: ---------------------------- Summary: NameCache promote wrong name to cache map Key: HDFS-17813 URL: https://issues.apache.org/jira/browse/HDFS-17813 Project: Hadoop HDFS Issue Type: Bug Components: namenode Reporter: kazan
The NameCache class is used to cache frequently used names in namenode, it promotes a name used more than useThreshold to the cache, the promote logic: {code:java} K put(final K name) { K internal = cache.get(name); if (internal != null) { lookups++; return internal; } // Track the usage count only during initialization if (!initialized) { UseCount useCount = transientMap.get(name); if (useCount != null) { useCount.increment(); if (useCount.get() >= useThreshold) { promote(name); // name got promoted } return useCount.value; } useCount = new UseCount(name); transientMap.put(name, useCount); } return null; } {code} When promoting, the cache stores the `name` parameter from put() instead of the existing useCount.value. This causes the returned value to change after a name is promoted, resulting in memory duplication. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org