Hello Apache Kafka Community, Could you please help me? I'm testing Kafka. - Environment # of Kafka brokers: 5 Producer config: acks=all request.timeout.ms=47000 delivery.timeout.ms=50000 Broker config: replica.lag.time.max.ms=45000 replica.fetch.wait.max.ms=500
I dropped packets from broker#1 to the other broker's port 9092. It means broker#1 cannot send replication fetch request to the others. And I produced data to broker#3. I expected broker#3 waits for fetch requests for replica.lag.time.max.ms(45sec), and then it removes broker#1 from ISR and sends Produce response. But actually, broker#3 removes broker#1 from ISR and sends response 57 seconds after receiving Produce request.(57sec is not constant value. It varies each time.) Is my expectation wrong? Why isn't broker#1 removed from ISR in replica.lag.time.max.ms? # timeline 17:39:30 Drop packets from broker#1 to the others 17:39:30 Producer sent Produce request to broker#3. Broker#3 received it. [2021-05-24 17:39:30,163] INFO [Log partition=a-snd-d00-87, dir=/kafka/data] Rolled new log segment at offset 136 in 1 ms. (kafka.log.Log) 17:40:17 Broker#3 sent Produce response with "Request Timed Out" 17:40:17 Producer sent Produce request to broker#3(retry) 17:40:20 Producer timed out with delivery.timeout.ms 17:40:27 Broker#3 removed broker#1 from ISR, and sent Produce response with "No Error" [2021-05-24 17:40:27,788] INFO [Partition a-snd-d00-87 broker=3] Shrinking ISR from 5,1,2,3,4 to 5,2,3,4. Leader: (highWatermark: 136, endOffset: 138). Out of sync replicas: (brokerId: 1, endOffset: 136). (kafka.cluster.Partition) Best regards, Keita