[
https://issues.apache.org/jira/browse/HDFS-17467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
farmmamba updated HDFS-17467:
-----------------------------
Description:
When we remove volumes, it may cause
IncrementalBlockReportManager#getPerStorageIBR throws NPE.
Consider below situation:
1、we have down createRbw、finalizeBlock. But have not done datanode.closeBlock
in method `BlockReceiver.PacketResponder#finalizeBlock`.
2、we remove volume which replica was written to and it executes such code:
`storageMap.remove(storageUuid);`
3、 we begin to execute datanode.closeBlock which try to send IBR to NameNode.
but when getting DatanodeStorage from storageMap using
storageUuid, we will get null because we have remove this storageUuid key from
storageMap.
4、Throw NPE in getPerStorageIBR method, because ConcurrentHashMap don't allow
null key.
was:
When we remove volumes, it may causeConsider below situation:
> IncrementalBlockReportManager#getPerStorageIBR may throw NPE when remove
> volumes
> --------------------------------------------------------------------------------
>
> Key: HDFS-17467
> URL: https://issues.apache.org/jira/browse/HDFS-17467
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: datanode
> Affects Versions: 3.4.0
> Reporter: farmmamba
> Assignee: farmmamba
> Priority: Major
>
> When we remove volumes, it may cause
> IncrementalBlockReportManager#getPerStorageIBR throws NPE.
> Consider below situation:
> 1、we have down createRbw、finalizeBlock. But have not done
> datanode.closeBlock in method `BlockReceiver.PacketResponder#finalizeBlock`.
> 2、we remove volume which replica was written to and it executes such code:
> `storageMap.remove(storageUuid);`
> 3、 we begin to execute datanode.closeBlock which try to send IBR to NameNode.
> but when getting DatanodeStorage from storageMap using
> storageUuid, we will get null because we have remove this storageUuid key
> from storageMap.
> 4、Throw NPE in getPerStorageIBR method, because ConcurrentHashMap don't allow
> null key.
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]