YY.Roy created KAFKA-6848:
-----------------------------

             Summary: Kafka consumer failed to get correct offset after commit
                 Key: KAFKA-6848
                 URL: https://issues.apache.org/jira/browse/KAFKA-6848
             Project: Kafka
          Issue Type: Bug
          Components: core
    Affects Versions: 0.11.0.0
            Reporter: YY.Roy


I use kafka consumer java api to poll messages from broker, and here is the 
code:

Consumer consumer = new Consumer(props);

consumer.assgin(topicPartitions);

long nextOffset = consumer.position(topicPartition);

consumer.poll();

consumer.commitSync();

 

The above code is called by a quartz scheduler every minute and the group.id is 
always the same. It ran properly during past several days until today  around 
8:20:35 am, the position api always returned the older offset committed two 
days ago, not the latest one which was committed around 8:20:33 am. It seems 
the kafka offset of this group.id just went backward

 

I polled the offsets message from the kafka internal topic __consumer_offsets 
and saw the lastes message was correct, which is like this:

[eb89887c591b4d2a98c7,my-topic-eb89887c591b4d2a98c7,0]::[OffsetMetadata[447648316,NO_METADATA],CommitTime
 1525220421173,ExpirationTime 1526430021173]

The commitTime showed it was indeed the last successful commit.

But then the position api returned a wrong offset, which is the first message 
of the corresponding partition of __consumer_offsets. It is like kafka broker 
regards this older committed offset is the correct offset of this group.id, but 
the correct one should have been last message in the  __consumer_offsets.

Then I checked the broker server log and found at that time there are some 
connection errors, which just the same time the position is called.

08:20:33,261 WARN Attempting to send response via channel for which there is no 
open connection, connection id 2 (kafka.network.Processor)

There are some other consumer trying to call position at this time and the 
leader of those topics are this broker too. After that they call get a wrong 
offset which were older commits in __consumer_offsets. 

 

 

 

 

 

 

 

 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to