{"record":{"id":"d88886142071cff1","repo":"apache/hadoop","slug":"shutting-down-writer-and-responder-due-to-a-checks","errorCode":null,"errorMessage":"Shutting down writer and responder due to a checksum error in received data. The error response has been sent upstream.","messagePattern":"Shutting down writer and responder due to a checksum error in received data\\. The error response has been sent upstream\\.","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java","lineNumber":1703,"sourceCode":"          inAddr,\n          duration);\n      if (duration > datanodeSlowLogThresholdMs) {\n        datanode.metrics.incrSlowAckToUpstreamCount();\n        LOG.warn(\"Slow PacketResponder send ack to upstream took \" + duration\n            + \"ms (threshold=\" + datanodeSlowLogThresholdMs + \"ms), \" + myString\n            + \", replyAck=\" + replyAck\n            + \", downstream DNs=\" + Arrays.toString(downstreamDNs)\n            + \", blockId=\" + replicaInfo.getBlockId()\n            + \", seqno=\" + seqno);\n      } else if (LOG.isDebugEnabled()) {\n        LOG.debug(myString + \", replyAck=\" + replyAck);\n      }\n\n      // If a corruption was detected in the received data, terminate after\n      // sending ERROR_CHECKSUM back.\n      Status myStatus = PipelineAck.getStatusFromHeader(myHeader);\n      if (myStatus == Status.ERROR_CHECKSUM) {\n        throw new IOException(\"Shutting down writer and responder \"\n            + \"due to a checksum error in received data. The error \"\n            + \"response has been sent upstream.\");\n      }\n    }\n    \n    /**\n     * Remove a packet from the head of the ack queue\n     *\n     * This should be called only when the ack queue is not empty\n     */\n    private void removeAckHead() {\n      synchronized (ackQueue) {\n        ackQueue.remove();\n        ackQueue.notifyAll();\n      }\n    }\n  }\n","sourceCodeStart":1685,"sourceCodeEnd":1721,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java#L1685-L1721","documentation":"Error \"Shutting down writer and responder due to a checksum error in received data. The error response has been sent upstream.\" thrown in apache/hadoop.","triggerScenarios":"The DataNode detects a checksum error while receiving block data, notifies upstream, and tears down the writer and responder for that block.","commonSituations":"A checksum error in received data forced the writer and responder to shut down after notifying upstream. Check local disk and memory health.","solutions":["Check local disk and RAM health on this DataNode, since it detected a checksum error in data it received.","Let the pipeline recovery continue; the block will be rewritten through a new pipeline and the bad replica reported to the NameNode."],"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-23T01:17:44.959Z"}