{"record":{"id":"73d6b3b22c86b34e","repo":"apache/hadoop","slug":"invalid-value-configured-for-dfs-datanode-disk-che-73d6b3","errorCode":null,"errorMessage":"Invalid value configured for dfs.datanode.disk.check.min.gap - {} (should be >= 0)","messagePattern":"Invalid value configured for dfs\\.datanode\\.disk\\.check\\.min\\.gap - (.+?) \\(should be >= 0\\)","errorType":"exception","errorClass":"HadoopIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/checker/DatasetVolumeChecker.java","lineNumber":141,"sourceCode":"    if (maxAllowedTimeForCheckMs <= 0) {\n      throw new HadoopIllegalArgumentException(\"Invalid value configured for \"\n          + DFS_DATANODE_DISK_CHECK_TIMEOUT_KEY + \" - \"\n          + maxAllowedTimeForCheckMs + \" (should be > 0)\");\n    }\n\n    this.timer = timer;\n\n    maxVolumeFailuresTolerated = conf.getInt(\n        DFS_DATANODE_FAILED_VOLUMES_TOLERATED_KEY,\n        DFS_DATANODE_FAILED_VOLUMES_TOLERATED_DEFAULT);\n\n    minDiskCheckGapMs = conf.getTimeDuration(\n        DFSConfigKeys.DFS_DATANODE_DISK_CHECK_MIN_GAP_KEY,\n        DFSConfigKeys.DFS_DATANODE_DISK_CHECK_MIN_GAP_DEFAULT,\n        TimeUnit.MILLISECONDS);\n\n    if (minDiskCheckGapMs < 0) {\n      throw new HadoopIllegalArgumentException(\"Invalid value configured for \"\n          + DFS_DATANODE_DISK_CHECK_MIN_GAP_KEY + \" - \"\n          + minDiskCheckGapMs + \" (should be >= 0)\");\n    }\n\n    diskCheckTimeout = conf.getTimeDuration(\n        DFSConfigKeys.DFS_DATANODE_DISK_CHECK_TIMEOUT_KEY,\n        DFSConfigKeys.DFS_DATANODE_DISK_CHECK_TIMEOUT_DEFAULT,\n        TimeUnit.MILLISECONDS);\n\n    if (diskCheckTimeout < 0) {\n      throw new HadoopIllegalArgumentException(\"Invalid value configured for \"\n          + DFS_DATANODE_DISK_CHECK_TIMEOUT_KEY + \" - \"\n          + diskCheckTimeout + \" (should be >= 0)\");\n    }\n\n    lastAllVolumesCheck = timer.monotonicNow() - minDiskCheckGapMs;\n\n    if (maxVolumeFailuresTolerated < DataNode.MAX_VOLUME_FAILURE_TOLERATED_LIMIT) {","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/checker/DatasetVolumeChecker.java#L123-L159","documentation":"DatasetVolumeChecker reads dfs.datanode.disk.check.min.gap (default 15 minutes) - the minimum interval between two successive health checks of the same volume, used by ThrottledAsyncChecker. Negative durations are rejected with HadoopIllegalArgumentException; zero is allowed and means no throttling gap.","triggerScenarios":"Setting dfs.datanode.disk.check.min.gap to a negative duration such as -1ms or '-1s' in hdfs-site.xml; the constructor check minDiskCheckGapMs < 0 fires during DataNode startup.","commonSituations":"Sign typos from copy-paste; attempt to express 'check as often as possible' as a negative 'lookbehind' style value; config templating or unit mistakes (e.g. '-1m' intended as 'default').","solutions":["Use 0 or a positive duration: dfs.datanode.disk.check.min.gap=0 disables the gap, any positive value throttles","Keep the 15m default unless checks are impacting IO","Restart the DataNode after fixing hdfs-site.xml"],"exampleFix":"# before (hdfs-site.xml)\n<property><name>dfs.datanode.disk.check.min.gap</name><value>-1s</value></property>\n\n# after\n<property><name>dfs.datanode.disk.check.min.gap</name><value>0</value></property>","handlingStrategy":"validation","validationCode":"long gap = conf.getTimeDuration(DFSConfigKeys.DFS_DATANODE_DISK_CHECK_MIN_GAP_KEY,\n    DFSConfigKeys.DFS_DATANODE_DISK_CHECK_MIN_GAP_DEFAULT, TimeUnit.MILLISECONDS);\nif (gap < 0) throw new IllegalStateException(\"dfs.datanode.disk.check.min.gap must be >= 0, got \" + gap);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use 0 (not negative) when you want no gap between volume checks","Keep the 15m default unless disk checks measurably affect IO"],"tags":["hdfs","datanode","disk-check","config","startup","validation"],"backgroundTag":"config-value-out-of-range","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}