{"record":{"id":"152c977c21155a2e","repo":"apache/hadoop","slug":"fs-image-is-being-downloaded-from-another-nn-at-tx","errorCode":null,"errorMessage":"FS image is being downloaded from another NN at txid {}","messagePattern":"FS image is being downloaded from another NN at txid (.+?)","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":1165,"sourceCode":"  \n  /**\n   * Save the contents of the FS image to a new image file in each of the\n   * current storage directories.\n   */\n  public synchronized void saveNamespace(FSNamesystem source, NameNodeFile nnf,\n      Canceler canceler) throws IOException {\n    assert editLog != null : \"editLog must be initialized\";\n    LOG.info(\"Save namespace ...\");\n    storage.attemptRestoreRemovedStorage();\n\n    boolean editLogWasOpen = editLog.isSegmentOpen();\n    \n    if (editLogWasOpen) {\n      editLog.endCurrentLogSegment(true);\n    }\n    long imageTxId = getCorrectLastAppliedOrWrittenTxId();\n    if (!addToCheckpointing(imageTxId)) {\n      throw new IOException(\n          \"FS image is being downloaded from another NN at txid \" + imageTxId);\n    }\n    try {\n      try {\n        saveFSImageInAllDirs(source, nnf, imageTxId, canceler);\n        if (!source.isRollingUpgrade()) {\n          updateStorageVersion();\n        }\n      } finally {\n        if (editLogWasOpen) {\n          editLog.startLogSegmentAndWriteHeaderTxn(imageTxId + 1,\n              source.getEffectiveLayoutVersion());\n          // Take this opportunity to note the current transaction.\n          // Even if the namespace save was cancelled, this marker\n          // is only used to determine what transaction ID is required\n          // for startup. So, it doesn't hurt to update it unnecessarily.\n          storage.writeTransactionIdFileToStorage(imageTxId + 1);\n        }","sourceCodeStart":1147,"sourceCodeEnd":1183,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java#L1147-L1183","documentation":"Error \"FS image is being downloaded from another NN at txid {}\" thrown in apache/hadoop.","triggerScenarios":"Saving the namespace while another NameNode is concurrently downloading an fsimage at the same txid (checkpoint conflict).","commonSituations":"See trigger scenarios.","solutions":["Wait for the in-progress image download from the other NameNode to complete before starting another transfer.","Restart the bootstrap if the transfer is stuck."],"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-22T20:17:22.307Z"}