{"record":{"id":"c89e9abbfafb53dd","repo":"apache/hadoop","slug":"this-datanode-s-fsdatasetspi-does-not-support-shor","errorCode":null,"errorMessage":"This DataNode's FsDatasetSpi does not support short-circuit local reads","messagePattern":"This DataNode's FsDatasetSpi does not support short-circuit local reads","errorType":"exception","errorClass":"ShortCircuitFdsUnsupportedException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java","lineNumber":2501,"sourceCode":"          fileDescriptorPassingDisabledReason);\n    }\n    int blkVersion = CURRENT_BLOCK_FORMAT_VERSION;\n    if (maxVersion < blkVersion) {\n      throw new ShortCircuitFdsVersionException(\"Your client is too old \" +\n        \"to read this block!  Its format version is \" + \n        blkVersion + \", but the highest format version you can read is \" +\n        maxVersion);\n    }\n    metrics.incrBlocksGetLocalPathInfo();\n    FileInputStream fis[] = new FileInputStream[2];\n    \n    try {\n      checkStorageState(\"requestShortCircuitFdsForRead\");\n      fis[0] = (FileInputStream)data.getBlockInputStream(blk, 0);\n      fis[1] = DatanodeUtil.getMetaDataInputStream(blk, data);\n    } catch (ClassCastException e) {\n      LOG.debug(\"requestShortCircuitFdsForRead failed\", e);\n      throw new ShortCircuitFdsUnsupportedException(\"This DataNode's \" +\n          \"FsDatasetSpi does not support short-circuit local reads\");\n    }\n    return fis;\n  }\n\n  private void checkBlockToken(ExtendedBlock block,\n      Token<BlockTokenIdentifier> token, AccessMode accessMode)\n      throws IOException {\n    if (isBlockTokenEnabled) {\n      BlockTokenIdentifier id = new BlockTokenIdentifier();\n      ByteArrayInputStream buf = new ByteArrayInputStream(token.getIdentifier());\n      DataInputStream in = new DataInputStream(buf);\n      id.readFields(in);\n      LOG.debug(\"BlockTokenIdentifier id: {}\", id);\n      blockPoolTokenSecretManager.checkAccess(id, null, block, accessMode,\n          null, null);\n    }\n  }","sourceCodeStart":2483,"sourceCodeEnd":2519,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java#L2483-L2519","documentation":"Error \"This DataNode's FsDatasetSpi does not support short-circuit local reads\" thrown in apache/hadoop.","triggerScenarios":"A client requests a short-circuit read from a DataNode whose FsDatasetSpi implementation does not implement short-circuit access.","commonSituations":"Short-circuit reads were requested but the configured FsDataset implementation lacks support. Disable short-circuit reads or use the default FsDataset.","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."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}