apache/hadoop · error · IOException

NamespaceInfo not found: Block pool {} should have retrieved

Error message

NamespaceInfo not found: Block pool {} should have retrieved namespace info before initBlockPool.

What it means

Error "NamespaceInfo not found: Block pool {} should have retrieved namespace info before initBlockPool." thrown in apache/hadoop.

Source

Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java:2188

    }

  }

  /**
   * One of the Block Pools has successfully connected to its NN.
   * This initializes the local storage for that block pool,
   * checks consistency of the NN's cluster ID, etc.
   * 
   * If this is the first block pool to register, this also initializes
   * the datanode-scoped storage.
   * 
   * @param bpos Block pool offer service
   * @throws IOException if the NN is inconsistent with the local storage.
   */
  void initBlockPool(BPOfferService bpos) throws IOException {
    NamespaceInfo nsInfo = bpos.getNamespaceInfo();
    if (nsInfo == null) {
      throw new IOException("NamespaceInfo not found: Block pool " + bpos
          + " should have retrieved namespace info before initBlockPool.");
    }
    
    setClusterId(nsInfo.clusterID, nsInfo.getBlockPoolID());

    // Register the new block pool with the BP manager.
    blockPoolManager.addBlockPool(bpos);
    
    // In the case that this is the first block pool to connect, initialize
    // the dataset, block scanners, etc.
    initStorage(nsInfo);

    try {
      data.addBlockPool(nsInfo.getBlockPoolID(), getConf());
    } catch (AddBlockPoolException e) {
      handleAddBlockPoolError(e);
    }
    // HDFS-14993: check disk after add the block pool info.

View on GitHub (pinned to 2add963021)

Solutions

  1. Ensure the DataNode successfully registered and handshook with the NameNode for that block pool before initBlockPool; check earlier log lines for handshake failures.
  2. Verify network connectivity and NameNode availability for the nameservice owning the block pool id.

When it happens

Trigger: initBlockPool is invoked for a block pool whose NamespaceInfo was never retrieved, typically due to a failed or skipped NameNode handshake.

Common situations: initBlockPool ran before namespace info was retrieved, an internal ordering issue typically triggered by a race during block pool registration. Restart the DataNode.


AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22). Data as JSON: /api/errors/0a6718a92b5a5e6b. Report an issue: GitHub.