{"record":{"id":"aa0f3d90d87b5330","repo":"apache/hadoop","slug":"specified-configuration-does-not-exists-s","errorCode":null,"errorMessage":"Specified configuration does not exists: %s","messagePattern":"Specified configuration does not exists: (.+?)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"hadoop-common-project/hadoop-minikdc/src/main/java/org/apache/hadoop/minikdc/MiniKdc.java","lineNumber":92,"sourceCode":"      \"java.security.krb5.conf\";\n  public static final String SUN_SECURITY_KRB5_DEBUG =\n      \"sun.security.krb5.debug\";\n\n  public static void main(String[] args) throws Exception {\n    if (args.length < 4) {\n      System.out.println(\"Arguments: <WORKDIR> <MINIKDCPROPERTIES> \" +\n              \"<KEYTABFILE> [<PRINCIPALS>]+\");\n      System.exit(1);\n    }\n    File workDir = new File(args[0]);\n    if (!workDir.exists()) {\n      throw new RuntimeException(\"Specified work directory does not exists: \"\n              + workDir.getAbsolutePath());\n    }\n    Properties conf = createConf();\n    File file = new File(args[1]);\n    if (!file.exists()) {\n      throw new RuntimeException(\"Specified configuration does not exists: \"\n              + file.getAbsolutePath());\n    }\n    Properties userConf = new Properties();\n    InputStreamReader r = null;\n    try {\n      r = new InputStreamReader(new FileInputStream(file),\n          StandardCharsets.UTF_8);\n      userConf.load(r);\n    } finally {\n      if (r != null) {\n        r.close();\n      }\n    }\n    for (Map.Entry<?, ?> entry : userConf.entrySet()) {\n      conf.put(entry.getKey(), entry.getValue());\n    }\n    final MiniKdc miniKdc = new MiniKdc(conf, workDir);\n    miniKdc.start();","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-common-project/hadoop-minikdc/src/main/java/org/apache/hadoop/minikdc/MiniKdc.java#L74-L110","documentation":"Second CLI check in MiniKdc.main(): the <MINIKDCPROPERTIES> argument must point to an existing properties file (org.name, org.domain, kdc.bind.address overrides etc.). If it does not exist, MiniKdc throws RuntimeException 'Specified configuration does not exists: <absolute path>' during startup.","triggerScenarios":"Launching MiniKdc's main with a second argument naming a nonexistent/unreadable .properties file — wrong filename, path relative to a different CWD, or the file not yet generated by the build.","commonSituations":"Test harnesses referencing target/classes/minikdc.properties before a build step creates it; CI checkouts where the properties file lives elsewhere; typos in the file path.","solutions":["Verify the exact path with ls and fix the argument (use an absolute path)","If the properties file is generated, ensure the generating step runs before MiniKdc starts","Ensure the file is readable by the JVM user"],"exampleFix":"# before\njava ... MiniKdc /tmp/kdc minikdc.props user.keytab hdfs\n# after\njava ... MiniKdc /tmp/kdc /etc/minikdc/minikdc.properties user.keytab hdfs","handlingStrategy":"validation","validationCode":"File props = new File(args[1]);\nif (!props.isFile() || !props.canRead())\n  throw new IllegalStateException(\"MiniKdc properties missing: \" + props.getAbsolutePath());","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Generate/copy the properties file in a pre-test build step","Use absolute paths for the properties file argument","Ship a known-good minikdc.properties in the repo and reference it by absolute path"],"tags":["minikdc","kerberos","testing","file-not-found","cli"],"backgroundTag":"file-path-not-found","analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}