{"record":{"id":"1f3a676440e076f6","repo":"apache/hadoop","slug":"diskvalidator-diskvalidator-class-not-found","errorCode":null,"errorMessage":"${diskValidator} DiskValidator class not found.","messagePattern":"(.+?) DiskValidator class not found\\.","errorType":"exception","errorClass":"DiskErrorException","httpStatus":null,"severity":"error","filePath":"hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/DiskValidatorFactory.java","lineNumber":86,"sourceCode":"   * @param diskValidator canonical class name, for example, \"basic\"\n   * @throws DiskErrorException if the class cannot be located\n   * @return disk validator.\n   */\n  @SuppressWarnings(\"unchecked\")\n  public static DiskValidator getInstance(String diskValidator)\n      throws DiskErrorException {\n    @SuppressWarnings(\"rawtypes\")\n    Class clazz;\n\n    if (diskValidator.equalsIgnoreCase(BasicDiskValidator.NAME)) {\n      clazz = BasicDiskValidator.class;\n    } else if (diskValidator.equalsIgnoreCase(ReadWriteDiskValidator.NAME)) {\n      clazz = ReadWriteDiskValidator.class;\n    } else {\n      try {\n        clazz = Class.forName(diskValidator);\n      } catch (ClassNotFoundException cnfe) {\n        throw new DiskErrorException(diskValidator\n            + \" DiskValidator class not found.\", cnfe);\n      }\n    }\n\n    return getInstance(clazz);\n  }\n}\n","sourceCodeStart":68,"sourceCodeEnd":94,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/DiskValidatorFactory.java#L68-L94","documentation":"DiskValidatorFactory.getInstance(name) accepts the built-in names 'basic' and 'read-write' case-insensitively; any other value is treated as a fully-qualified class name and loaded with Class.forName. A ClassNotFoundException becomes DiskErrorException('<name> DiskValidator class not found.'). The name comes from cluster config (e.g. yarn.nodemanager.disk-validator used by the NodeManager, LocalDirsHandlerService, DirectoryCollection and LocalDirAllocator).","triggerScenarios":"A typo'd validator name that is neither basic/read-write nor a loadable class ('readwrite', 'rw', 'Basic ' with whitespace); a custom DiskValidator implementation whose class is not on the daemon classpath; a wrong fully-qualified class name.","commonSituations":"yarn.nodemanager.disk-validator misconfigured during cluster setup; custom validator jars shipped to some nodes only; copied config from another cluster referencing site-specific classes.","solutions":["Set the validator to a built-in name: 'basic' (permission checks only) or 'read-write' (probe I/O)","For custom validators, use the exact fully-qualified class name and ship the jar where the daemon loads it (e.g. the Hadoop lib dir)","Check for stray whitespace or spelling in the yarn.nodemanager.disk-validator value"],"exampleFix":"<!-- before -->\n<property><name>yarn.nodemanager.disk-validator</name><value>readwrite</value></property>\n<!-- after -->\n<property><name>yarn.nodemanager.disk-validator</name><value>read-write</value></property>","handlingStrategy":"validation","validationCode":"void validateDiskValidatorName(String name) throws DiskErrorException {\n  if (name.equalsIgnoreCase(\"basic\") || name.equalsIgnoreCase(\"read-write\")) return;\n  try {\n    Class.forName(name); // must be a loadable DiskValidator implementation\n  } catch (ClassNotFoundException e) {\n    throw new DiskErrorException(name + \" DiskValidator class not found.\", e);\n  }\n}","typeGuard":null,"tryCatchPattern":"catch (DiskErrorException e) {\n  // validator name is neither built-in nor a class on the classpath\n  log.error(\"bad disk validator config; falling back to 'basic'\", e);\n}","preventionTips":["Restrict yarn.nodemanager.disk-validator to 'basic' or 'read-write' unless you ship a custom validator","Deploy custom validator jars to every node's Hadoop lib dir before enabling them","Add config linters that reject unknown validator names at deploy time"],"tags":["classpath","configuration","disk-validator","class-not-found","yarn"],"backgroundTag":"class-not-found","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}