{"record":{"id":"e04ec08584fba90c","repo":"apache/hadoop","slug":"cannot-seek-in-codecname-compressed-stream","errorCode":null,"errorMessage":"Cannot seek in {codecName} compressed stream","messagePattern":"Cannot seek in (.+?) compressed stream","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/LineRecordReader.java","lineNumber":138,"sourceCode":"        MRJobConfig.INPUT_FILE_OPTION_PREFIX,\n        MRJobConfig.INPUT_FILE_MANDATORY_PREFIX);\n    fileIn = FutureIO.awaitFuture(builder.build());\n    if (isCompressedInput()) {\n      decompressor = CodecPool.getDecompressor(codec);\n      if (codec instanceof SplittableCompressionCodec) {\n        final SplitCompressionInputStream cIn =\n          ((SplittableCompressionCodec)codec).createInputStream(\n            fileIn, decompressor, start, end,\n            SplittableCompressionCodec.READ_MODE.BYBLOCK);\n        in = new CompressedSplitLineReader(cIn, job, recordDelimiter);\n        start = cIn.getAdjustedStart();\n        end = cIn.getAdjustedEnd();\n        filePosition = cIn; // take pos from compressed stream\n      } else {\n        if (start != 0) {\n          // So we have a split that is part of a file stored using\n          // a Compression codec that cannot be split.\n          throw new IOException(\"Cannot seek in \" +\n              codec.getClass().getSimpleName() + \" compressed stream\");\n        }\n\n        in = new SplitLineReader(codec.createInputStream(fileIn,\n            decompressor), job, recordDelimiter);\n        filePosition = fileIn;\n      }\n    } else {\n      fileIn.seek(start);\n      in = new UncompressedSplitLineReader(\n          fileIn, job, recordDelimiter, split.getLength());\n      filePosition = fileIn;\n    }\n    // If this is not the first split, we always throw away first record\n    // because we always (except the last split) read one extra line in\n    // next() method.\n    if (start != 0) {\n      try {","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/LineRecordReader.java#L120-L156","documentation":"Error \"Cannot seek in {codecName} compressed stream\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/LineRecordReader.java:138 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Seeking is unsupported in this compressed stream; use a splittable codec such as bzip2, or disable compression for inputs that need random access."],"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"}