Details
Description
We found the dead node detector might never remove the alive nodes from the dead node set in a big cluster. For example:
- 200 nodes are added to the dead node set by DeadNodeDetector.
- DeadNodeDetector#checkDeadNodes() adds 100 nodes to the deadNodesProbeQueue because the queue limited length is 100.
- The probe threads start working and probe 30 nodes.
- DeadNodeDetector#checkDeadNodes() is scheduled again. It iterates the dead node set and adds 30 nodes to the deadNodesProbeQueue. But the order is the same as the last time. So the 30 nodes that has already been probed are added to the queue again.
- Repeat 3 and 4. But we always add the first 30 nodes from the dead set. If they are all dead then the live nodes behind them could never be recovered.
Attachments
Attachments
Issue Links
- relates to
-
HDFS-13571 Deadnode detection
- Resolved