Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
I have been investigating the cause of random Namenode memory corruptions/memory overflows, etc. Please comment.
1. The functions datanodeReport() and DFSNodesStatus() do not acquire the global lock.
This can race with another thread invoking registerDatanode(). registerDatanode()
can remove a datanode (thru wipeDatanode()) while the datanodeReport thread is
traversing the list of datanodes. This can cause exceptions to occur.
2. The blocksMap is protected by the global lock. The setReplication() call does not acquire
the global lock when it calls proccessOverReplicatedBlock(). This can cause corruption in blockMap.
Attachments
Attachments
Issue Links
- is related to
-
HADOOP-751 Namenode constantly using up 100% CPU
- Closed