farmmamba created HDFS-17267: -------------------------------- Summary: Client send the smae packet multiple times when method markSlowNode throws IOException. Key: HDFS-17267 URL: https://issues.apache.org/jira/browse/HDFS-17267 Project: Hadoop HDFS Issue Type: Improvement Affects Versions: 3.3.6 Reporter: farmmamba Assignee: farmmamba
Since we have HDFS-16348, we can kick out SLOW node in pipeline when writing data to pipeline. And I think it introduced a problem, that is the same packet will be sent twice or more times when we kick out SLOW node. The flow are as below: 1、 DFSPacket p1 is pushed into dataQueue. 2、DataStreamer takes DFSPacket p1 from dataQueue. 3、Remove p1 from dataQueue and push p1 into ackQueue. 4、sendPacket(p1). 5、In ResponseProcessor#run, read pipelineAck for p1. 6、We meet SlOW node, so method markSlowNode throw IOException and does not execute `ackQueue.removeFirst();`. 7、In next loop of DataStreamer#run, we come into method processDatanodeOrExternalError and execute `dataQueue.addAll(0, ackQueue);`. 8、the p1 will be sent repeatedly. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org