apache/hadoop · error · IOException

Can't read data from minimum number of sources required by r

Error message

Can't read data from minimum number of sources required by reconstruction, block id: {}

What it means

Error "Can't read data from minimum number of sources required by reconstruction, block id: {}" thrown in apache/hadoop.

Source

Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedReader.java:346

            // number of source DNs required by reconstruction.
            cancelReads(futures.keySet());
            clearFuturesAndService();
            break;
          }
        }
      } catch (InterruptedException e) {
        LOG.info("Read data interrupted.", e);
        cancelReads(futures.keySet());
        clearFuturesAndService();
        break;
      }
    }

    if (nSuccess < minRequiredSources) {
      String error = "Can't read data from minimum number of sources "
          + "required by reconstruction, block id: " +
          reconstructor.getBlockGroup().getBlockId();
      throw new IOException(error);
    }

    return newSuccess;
  }

  /**
   * Schedule a read from some new source DN if some DN is corrupted
   * or slow, this is called from the read iteration.
   * Initially we may only have <code>minRequiredSources</code> number of
   * StripedBlockReader.
   * If the position is at the end of target block, don't need to do
   * real read, and return the array index of source DN, otherwise -1.
   *
   * @param used the used source DNs in this iteration.
   * @return the array index of source DN if don't need to do real read.
   */
  private int scheduleNewRead(BitSet used, int reconstructLength,
                              CorruptedBlocks corruptedBlocks) {

View on GitHub (pinned to 2add963021)

Solutions

  1. Investigate read failures on the source DataNodes (disk errors, timeouts) in their logs and repair the faulty storage.
  2. Verify network stability between the reconstructing DataNode and the sources.
  3. If the block is corrupt or missing on too many sources, restore it from another replica or rerun reconstruction after sources recover.

When it happens

Trigger: Erasure-coding read when enough sources are located but reads from the minimum number of sources all fail (I/O errors, corrupt stripes, network timeouts).

Common situations: See trigger scenarios.


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