This is an automated email from the ASF dual-hosted git repository.
aswinshakil pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 10ea33bd2cc HDDS-14217. Reconciler should not cast
BlockExtendedInputStream to BlockInputStream (#9589)
10ea33bd2cc is described below
commit 10ea33bd2cca97fb9bb7eedcee0c4505d959d13e
Author: Aswin Shakil Balasubramanian <[email protected]>
AuthorDate: Tue Jan 6 23:54:21 2026 +0530
HDDS-14217. Reconciler should not cast BlockExtendedInputStream to
BlockInputStream (#9589)
---
.../ozone/client/io/BlockInputStreamFactoryImpl.java | 19 +++++++++++++++++++
.../ozone/container/keyvalue/KeyValueHandler.java | 5 +----
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git
a/hadoop-hdds/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockInputStreamFactoryImpl.java
b/hadoop-hdds/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockInputStreamFactoryImpl.java
index 2765e2a00a8..02527129d5a 100644
---
a/hadoop-hdds/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockInputStreamFactoryImpl.java
+++
b/hadoop-hdds/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockInputStreamFactoryImpl.java
@@ -110,4 +110,23 @@ private boolean allDataNodesSupportStreamBlock(Pipeline
pipeline) {
return true;
}
+ /**
+ * Create a new BlockInputStream for RATIS.
+ *
+ * @param blockInfo The blockInfo representing the block.
+ * @param pipeline The pipeline to be used for reading the block
+ * @param token The block Access Token
+ * @param xceiverFactory Factory to create the xceiver in the client
+ * @param refreshFunction Function to refresh the block location if needed
+ * @param config The client configuration
+ * @return BlockInputStream instance.
+ */
+ public BlockInputStream createBlockInputStream(BlockLocationInfo blockInfo,
+ Pipeline pipeline, Token<OzoneBlockTokenIdentifier> token,
+ XceiverClientFactory xceiverFactory,
+ Function<BlockID, BlockLocationInfo> refreshFunction,
+ OzoneClientConfig config) throws IOException {
+
+ return new BlockInputStream(blockInfo, pipeline, token, xceiverFactory,
refreshFunction, config);
+ }
}
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
index 04ad8287ec2..d6a78e53b66 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
@@ -95,7 +95,6 @@
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.hdds.HddsUtils;
import org.apache.hadoop.hdds.client.BlockID;
-import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.conf.StorageUnit;
@@ -111,7 +110,6 @@
import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ReadBlockRequestProto;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.Type;
import
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.WriteChunkRequestProto;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.ByteStringConversion;
import org.apache.hadoop.hdds.scm.OzoneClientConfig;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
@@ -1853,8 +1851,7 @@ private long reconcileChunksPerBlock(KeyValueContainer
container, Pipeline pipel
.build();
// Under construction is set here, during BlockInputStream#initialize() it
is used to update the block length.
blkInfo.setUnderConstruction(true);
- try (BlockInputStream blockInputStream = (BlockInputStream)
blockInputStreamFactory.create(
- RatisReplicationConfig.getInstance(HddsProtos.ReplicationFactor.ONE),
+ try (BlockInputStream blockInputStream =
blockInputStreamFactory.createBlockInputStream(
blkInfo, pipeline, blockToken, dnClient.getXceiverClientManager(),
null, conf.getObject(OzoneClientConfig.class))) {
// Initialize the BlockInputStream. Gets the blockData from the peer,
sets the block length and
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]