apache/hadoop · error · ShortCircuitFdsUnsupportedException
This DataNode's FsDatasetSpi does not support short-circuit
Error message
This DataNode's FsDatasetSpi does not support short-circuit local reads
What it means
Error "This DataNode's FsDatasetSpi does not support short-circuit local reads" thrown in apache/hadoop.
Source
Thrown at hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java:2501
fileDescriptorPassingDisabledReason);
}
int blkVersion = CURRENT_BLOCK_FORMAT_VERSION;
if (maxVersion < blkVersion) {
throw new ShortCircuitFdsVersionException("Your client is too old " +
"to read this block! Its format version is " +
blkVersion + ", but the highest format version you can read is " +
maxVersion);
}
metrics.incrBlocksGetLocalPathInfo();
FileInputStream fis[] = new FileInputStream[2];
try {
checkStorageState("requestShortCircuitFdsForRead");
fis[0] = (FileInputStream)data.getBlockInputStream(blk, 0);
fis[1] = DatanodeUtil.getMetaDataInputStream(blk, data);
} catch (ClassCastException e) {
LOG.debug("requestShortCircuitFdsForRead failed", e);
throw new ShortCircuitFdsUnsupportedException("This DataNode's " +
"FsDatasetSpi does not support short-circuit local reads");
}
return fis;
}
private void checkBlockToken(ExtendedBlock block,
Token<BlockTokenIdentifier> token, AccessMode accessMode)
throws IOException {
if (isBlockTokenEnabled) {
BlockTokenIdentifier id = new BlockTokenIdentifier();
ByteArrayInputStream buf = new ByteArrayInputStream(token.getIdentifier());
DataInputStream in = new DataInputStream(buf);
id.readFields(in);
LOG.debug("BlockTokenIdentifier id: {}", id);
blockPoolTokenSecretManager.checkAccess(id, null, block, accessMode,
null, null);
}
}View on GitHub (pinned to 2add963021)
Solutions
- Disable short-circuit local reads (dfs.client.read.shortcircuit=false) for clients talking to this DataNode.
- Use the default FsDatasetSpi (local disk) implementation; alternative dataset implementations (e.g., provided storage) do not support short-circuit reads.
When it happens
Trigger: A client requests a short-circuit read from a DataNode whose FsDatasetSpi implementation does not implement short-circuit access.
Common situations: Short-circuit reads were requested but the configured FsDataset implementation lacks support. Disable short-circuit reads or use the default FsDataset.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/c89e9abbfafb53dd.
Report an issue: GitHub.