{"record":{"id":"b890ce3df46f6e98","repo":"apache/hadoop","slug":"invalid-value-configured-for-dfs-datanode-failed-v-b890ce","errorCode":null,"errorMessage":"Invalid value configured for dfs.datanode.failed.volumes.tolerated - {}. Value configured is >= to the number of configured volumes ({}).","messagePattern":"Invalid value configured for dfs\\.datanode\\.failed\\.volumes\\.tolerated - (.+?)\\. Value configured is >= to the number of configured volumes \\((.+?)\\)\\.","errorType":"exception","errorClass":"HadoopIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/checker/StorageLocationChecker.java","lineNumber":175,"sourceCode":"        new LinkedHashMap<>();\n    final Set<StorageLocation> failedLocations = new HashSet<>();\n    final Map<StorageLocation, ListenableFuture<VolumeCheckResult>> futures =\n        Maps.newHashMap();\n    final LocalFileSystem localFS = FileSystem.getLocal(conf);\n    final CheckContext context = new CheckContext(localFS, expectedPermission);\n\n    // Start parallel disk check operations on all StorageLocations.\n    for (StorageLocation location : dataDirs) {\n      goodLocations.put(location, true);\n      Optional<ListenableFuture<VolumeCheckResult>> olf =\n          delegateChecker.schedule(location, context);\n      if (olf.isPresent()) {\n        futures.put(location, olf.get());\n      }\n    }\n\n    if (maxVolumeFailuresTolerated >= dataDirs.size()) {\n      throw new HadoopIllegalArgumentException(\"Invalid value configured for \"\n          + DFS_DATANODE_FAILED_VOLUMES_TOLERATED_KEY + \" - \"\n          + maxVolumeFailuresTolerated + \". Value configured is >= \"\n          + \"to the number of configured volumes (\" + dataDirs.size() + \").\");\n    }\n\n    final long checkStartTimeMs = timer.monotonicNow();\n\n    // Retrieve the results of the disk checks.\n    for (Map.Entry<StorageLocation,\n             ListenableFuture<VolumeCheckResult>> entry : futures.entrySet()) {\n\n      // Determine how much time we can allow for this check to complete.\n      // The cumulative wait time cannot exceed maxAllowedTimeForCheck.\n      final long waitSoFarMs = (timer.monotonicNow() - checkStartTimeMs);\n      final long timeLeftMs = Math.max(0,\n          maxAllowedTimeForCheckMs - waitSoFarMs);\n      final StorageLocation location = entry.getKey();\n","sourceCodeStart":157,"sourceCodeEnd":193,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/checker/StorageLocationChecker.java#L157-L193","documentation":"Error \"Invalid value configured for dfs.datanode.failed.volumes.tolerated - {}. Value configured is >= to the number of configured volumes ({}).\" thrown in apache/hadoop.","triggerScenarios":"dfs.datanode.failed.volumes.tolerated is greater than or equal to the number of configured storage volumes, which would permit all volumes to fail.","commonSituations":"dfs.datanode.failed.volumes.tolerated is >= the number of configured volumes, which would tolerate total storage loss. Lower it below the volume count.","solutions":["Lower dfs.datanode.failed.volumes.tolerated below the number of configured volumes (dfs.datanode.data.dir entries), or add more data volumes.","Use -1 to let the DataNode tolerate failures up to all but one volume."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}