You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by "Coolbeth, Matthew" <Ma...@espn.com> on 2015/07/25 03:14:03 UTC
Changing error codes from the simple consumer?
I am having a strange interaction with the simple consumer API in Kafka 0.8.2.
Running the following code:
public FetchedMessageList send(String topic, int partition, long offset, int fetchSize) throws KafkaException {
try {
FetchedMessageList results = new FetchedMessageList();
FetchRequest req = new FetchRequestBuilder()
.clientId(clientId)
.addFetch(topic, partition, offset, fetchSize)
.minBytes(1)
.maxWait(250)
.build();
FetchResponse resp = consumer.fetch(req);
if(resp.hasError()) {
int code = resp.errorCode(topic, partition);
if (code == 9) {
logger.warn("Fetch response contained error code: {}", resp.errorCode(topic, partition));
} else {
throw new RuntimeException(String.format("Fetch response contained error code %d", code));
}
}
Following a leader election, the FetchResponse has an error, and trips the (code == 9) condition, causing the program to emit a message via logger.warn.
However, the emitted log message reads “Fetch response contained error code: 6”.
I looked over the Kafka source code and don’t see how resp.errorCode might return a different value the second time.
Has anyone seen this before?
Thanks,
Matt Coolbeth