[ https://issues.apache.org/jira/browse/KAFKA-6607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias J. Sax resolved KAFKA-6607. ------------------------------------ Fix Version/s: 2.5.0 Resolution: Fixed > Kafka Streams lag not zero when input topic transactional > --------------------------------------------------------- > > Key: KAFKA-6607 > URL: https://issues.apache.org/jira/browse/KAFKA-6607 > Project: Kafka > Issue Type: Improvement > Components: streams > Affects Versions: 1.0.0 > Reporter: Matthias J. Sax > Assignee: Matthias J. Sax > Priority: Minor > Fix For: 2.5.0 > > > When an input topic for a Kafka Streams application is written using > transaction, Kafka Streams commits an "incorrect" offset, ie, it commits > "lastProcessedMessageOffset + 1" that is smaller than "endOffset" if it > reaches the end of topic. The reason is the commit marker that is the last > "message" in the topic; Streams does not take commit markers into account > when committing. > This is not a correctness issue, but when one inspect the consumer lag via > {{bin/kafka-consumer.group.sh}} the lag is shown as 1 instead of 0 – what is > correct from consumer-group tool point of view. > Note that all applications using a plain consumer may face the same issue if > they use `KafkaConsumer#commitSync(Map<TopicPartition, OffsetAndMetadata> > offsets)`: to address the issue, the correct pattern is to either commit > "nextRecord.offset()" (if the next record is available already, ie, was > returned by `poll()`, or use `consumer.position()` that takes the commit > marker into account and would "step over it"). -- This message was sent by Atlassian Jira (v8.3.4#803005)