You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Ankur Johri <er...@gmail.com> on 2016/02/24 10:37:40 UTC

Kafka error code: 7 (RequestTimedOut)

Hi,


I have a Kafka infrastructure in which there is 1 topic (T) with 1
partition and replication factor 2. There are 2 brokers  - B1 and B2 in the
associated zookeeper. The two brokers are on two different hosts - host 1
and host 2. The leader is on host1, which is defined to be local in context
of a producer, which also runs on host 1. The producer uses librdkafka
library (C++) to write messages periodically to the topic T.



The producer is configured in such a way that kafka write (to leader)
happens in sync and replication happens in async (required.acks = 1).



In a normal scenario, producer will write messages to B1 on host 1
synchronously and those will be replicated asynchronously by B2 on host2.



Here is an issued which I am getting.



Producer is writing messages and if B2 on host 2 is shutdown, an error is
returned by produce API. In librdkafka terms, the error is like below.



RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7 (Description:

Broker: Request timed out



This error is basically transparent to librdkafka library and coming
directly from Kafka. In terms of Kafka, it is given below.



RequestTimedOut

7

Yes

This error is thrown if the request exceeds the user-specified time limit
in the request.





I understand that the error is there because the broker B2 on host 2 is not
available so the leader broker B1 is not able to send message to B2, it
waits for timeout period and when it expires, it returns error to producer.



My question is why leader broker B1 even attempts to do that. When B2 is
shutdown, the ISR list will shrink from {B1,B2} to {B1} and there should
not be any replication happening to B2. The required.acks is set to 1 so
the Kafka write to leader broker (B1) should work without any error.



Please help. Thanks in advance.



Thanks,

Ankur