You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by ������������ <ke...@hpe.com> on 2021/05/24 13:46:30 UTC

Produce response is not sent in replica.lag.time.max.ms

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