apache/hadoop · error · IOException

Block ${oldReplicaInfo} reopen failed. Unable to move meta

Error message

Block ${oldReplicaInfo} reopen failed.  Unable to move meta file  ${oldmeta} to rbw dir ${newmeta}

What it means

Error "Block ${oldReplicaInfo} reopen failed. Unable to move meta file ${oldmeta} to rbw dir ${newmeta}" thrown in apache/hadoop.

Source

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

  public void moveReplicaFrom(ReplicaInfo oldReplicaInfo, File newBlkFile)
      throws IOException {

    if (!(oldReplicaInfo instanceof LocalReplica)) {
      throw new IOException("The source replica with blk id "
          + oldReplicaInfo.getBlockId()
          + " should be derived from LocalReplica");
    }

    final LocalReplica oldReplica = (LocalReplica) oldReplicaInfo;
    final File oldBlockFile = oldReplica.getBlockFile();
    final File oldmeta = oldReplica.getMetaFile();
    final File newmeta = getMetaFile();
    final FileIoProvider fileIoProvider = getFileIoProvider();

    try {
      fileIoProvider.rename(getVolume(), oldmeta, newmeta);
    } catch (IOException e) {
      throw new IOException("Block " + oldReplicaInfo + " reopen failed. " +
                            " Unable to move meta file  " + oldmeta +
                            " to rbw dir " + newmeta, e);
    }

    try {
      fileIoProvider.rename(getVolume(), oldBlockFile, newBlkFile);
    } catch (IOException e) {
      try {
        fileIoProvider.rename(getVolume(), newmeta, oldmeta);
      } catch (IOException ex) {
        LOG.warn("Cannot move meta file " + newmeta +
            "back to the finalized directory " + oldmeta, ex);
      }
      throw new IOException("Block " + oldReplicaInfo + " reopen failed. " +
          " Unable to move block file " + oldReplica.getBlockFile() +
          " to rbw dir " + newBlkFile, e);
    }
  }

View on GitHub (pinned to 2add963021)

Solutions

  1. Check volume permissions, free space, and disk health; the meta file rename to the rbw directory failed at the filesystem level.
  2. If the volume is failing, remove it from service and let the block re-replicate.

When it happens

Trigger: Reopening a block for append fails because the meta file cannot be moved into the RBW directory.

Common situations: Reopening a block failed because the meta file could not be moved into the RBW directory. Check disk space, permissions, and volume health.


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