Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
2.8.0
-
None
-
None
Description
HADOOP-12973 refactored DU and makes it pluggable. The refactory has a side-effect that if DU encounters an exception, the exception is caught, logged and ignored, essentially fixes HDFS-9908 (in which case runaway exceptions prevent DataNodes from handshaking with NameNodes).
However, this "fix" is not good, in the sense that if the disk is bad, there is no immediate action made by the DataNode other than logging the exception. Existing FsDatasetSpi#checkDataDir has been reduced to only check a few number of directories blindly. If a disk goes bad, it is often possible that only a few files are bad initially and that by checking only a small number of directories it is easy to overlook the degraded disk.
I propose: in addition to logging the exception, DataNode should proactively verify the files are not accessible, remove the volume, and make the failure visible by showing it in JMX, so that administrators can spot the failure via monitoring systems.
A different fix, based on HDFS-9908, is needed before Hadoop 2.8.0
Attachments
Attachments
Issue Links
- relates to
-
HADOOP-12973 make DU pluggable
- Resolved
-
HDFS-9908 Datanode should tolerate disk scan failure during NN handshake
- Resolved