apache/hadoop · error · IOException

Inconsistent checkpoint fields.\nLV = layoutVersion namespac

Error message

Inconsistent checkpoint fields.\nLV = layoutVersion namespaceID = namespaceID cTime = cTime ; clusterId = clusterID ; blockpoolId = blockpoolID.\nExpecting respectively: si.getStorage().layoutVersion; si.getStorage().namespaceID; si.getStorage().cTime; si.getClusterID(); si.getBlockPoolID().

What it means

Error "Inconsistent checkpoint fields.\nLV = layoutVersion namespaceID = namespaceID cTime = cTime ; clusterId = clusterID ; blockpoolId = blockpoolID.\nExpecting respectively: si.getStorage().layoutVersion; si.getStorage().namespaceID; si.getStorage().cTime; si.getClusterID(); si.getBlockPoolID()." thrown in apache/hadoop.

Source

Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/CheckpointSignature.java:134

  boolean storageVersionMatches(StorageInfo si) throws IOException {
    return (layoutVersion == si.layoutVersion) && (cTime == si.cTime);
  }

  boolean isSameCluster(FSImage si) {
    return namespaceID == si.getStorage().namespaceID &&
      clusterID.equals(si.getClusterID()) &&
      blockpoolID.equals(si.getBlockPoolID());
  }

  boolean namespaceIdMatches(FSImage si) {
    return namespaceID == si.getStorage().namespaceID;
  }

  void validateStorageInfo(FSImage si) throws IOException {
    if (!isSameCluster(si)
        || !storageVersionMatches(si.getStorage())) {
      throw new IOException("Inconsistent checkpoint fields.\n"
          + "LV = " + layoutVersion + " namespaceID = " + namespaceID
          + " cTime = " + cTime
          + " ; clusterId = " + clusterID
          + " ; blockpoolId = " + blockpoolID
          + ".\nExpecting respectively: "
          + si.getStorage().layoutVersion + "; " 
          + si.getStorage().namespaceID + "; " + si.getStorage().cTime
          + "; " + si.getClusterID() + "; " 
          + si.getBlockPoolID() + ".");
    }
  }

  //
  // Comparable interface
  //
  @Override
  public int compareTo(CheckpointSignature o) {
    return ComparisonChain.start()

View on GitHub (pinned to 2add963021)

Solutions

  1. Do not mix fsimage/edits from different clusters or namespaces; roll the checkpoint with matching storage info.
  2. Re-bootstrap the standby/backup node so its layout version, namespace ID, cluster ID and block pool ID match the active NameNode.

When it happens

Trigger: Checkpoint image validation when layout version, namespace ID, cTime, cluster ID or blockpool ID in the checkpoint do not match the NameNode's storage info.

Common situations: See trigger scenarios.


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