From 365a6eff589fa322edcc3c2f59812fe3975e2288 Mon Sep 17 00:00:00 2001 From: CapMoon Date: Thu, 25 Jun 2026 16:12:55 +0800 Subject: [PATCH] HDFS-17939. StripedReader should only scan data blocks when initializing zero stripe indices --- .../hdfs/server/datanode/erasurecode/StripedReader.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedReader.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedReader.java index 20d5c6f44fb410..f44c60d3bc4324 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedReader.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/erasurecode/StripedReader.java @@ -202,11 +202,9 @@ private void initZeroStrip() { BitSet bitset = reconstructor.getLiveBitSet(); int k = 0; - for (int i = 0; i < dataBlkNum + parityBlkNum; i++) { - if (!bitset.get(i)) { - if (reconstructor.getBlockLen(i) <= 0) { - zeroStripeIndices[k++] = (short)i; - } + for (int i = 0; i < dataBlkNum; i++) { + if (!bitset.get(i) && reconstructor.getBlockLen(i) <= 0) { + zeroStripeIndices[k++] = (short)i; } } }