{"record":{"id":"cd1372b1222ca9dc","repo":"apache/hadoop","slug":"no-image-directories-available","errorCode":null,"errorMessage":"No image directories available!","messagePattern":"No image directories available!","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java","lineNumber":1235,"sourceCode":"  public void removeFromCheckpointing(long txid) {\n    currentlyCheckpointing.remove(txid);\n  }\n\n  void save(FSNamesystem src, File dst) throws IOException {\n    final long txid = getCorrectLastAppliedOrWrittenTxId();\n    LOG.info(\"save fsimage with txid={} to {}\", txid, dst.getAbsolutePath());\n    final SaveNamespaceContext context = new SaveNamespaceContext(src, txid, new Canceler());\n    final Storage.StorageDirectory storageDirectory = new Storage.StorageDirectory(dst);\n    Files.createDirectories(storageDirectory.getCurrentDir().toPath());\n    new FSImageSaver(context, storageDirectory, NameNodeFile.IMAGE).run();\n  }\n\n  private synchronized void saveFSImageInAllDirs(FSNamesystem source,\n      NameNodeFile nnf, long txid, Canceler canceler) throws IOException {\n    StartupProgress prog = NameNode.getStartupProgress();\n    prog.beginPhase(Phase.SAVING_CHECKPOINT);\n    if (storage.getNumStorageDirs(NameNodeDirType.IMAGE) == 0) {\n      throw new IOException(\"No image directories available!\");\n    }\n    if (canceler == null) {\n      canceler = new Canceler();\n    }\n    SaveNamespaceContext ctx = new SaveNamespaceContext(\n        source, txid, canceler);\n    \n    try {\n      List<Thread> saveThreads = new ArrayList<Thread>();\n      // save images into current\n      for (Iterator<StorageDirectory> it\n             = storage.dirIterator(NameNodeDirType.IMAGE); it.hasNext();) {\n        StorageDirectory sd = it.next();\n        FSImageSaver saver = new FSImageSaver(ctx, sd, nnf);\n        Thread saveThread = new Thread(saver, saver.toString());\n        saveThreads.add(saveThread);\n        saveThread.start();\n      }","sourceCodeStart":1217,"sourceCodeEnd":1253,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java#L1217-L1253","documentation":"Error \"No image directories available!\" thrown in apache/hadoop.","triggerScenarios":"Saving the namespace when all configured image storage directories have failed or been removed from service.","commonSituations":"See trigger scenarios.","solutions":["Configure dfs.namenode.name.dir with at least one writable storage directory.","Check disk space and permissions on the configured image directories."],"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"}