[
https://issues.apache.org/jira/browse/HDFS-7225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhe Zhang updated HDFS-7225:
----------------------------
Attachment: HDFS-7225-v2.patch
This patch removes invalidation work under a DN if the lookup returns null. The
added unit test verifies that the invalidation work has been removed instead of
skipped.
> Failed DataNode lookup can crash NameNode with NullPointerException
> -------------------------------------------------------------------
>
> Key: HDFS-7225
> URL: https://issues.apache.org/jira/browse/HDFS-7225
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 2.6.0
> Reporter: Zhe Zhang
> Assignee: Zhe Zhang
> Attachments: HDFS-7225-v1.patch, HDFS-7225-v2.patch
>
>
> {{BlockManager#invalidateWorkForOneNode}} looks up a DataNode by the
> {{datanodeUuid}} and passes the resultant {{DatanodeDescriptor}} to
> {{InvalidateBlocks#invalidateWork}}. However, if a wrong or outdated
> {{datanodeUuid}} is used, a null pointer will be passed to {{invalidateWork}}
> which will use it to lookup in a {{TreeMap}}. Since the key type is
> {{DatanodeDescriptor}}, key comparison is based on the IP address. A null key
> will crash the NameNode with an NPE.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)