Hi,
I have a stream process that from time to time starts re-ingesting old data
which affects the whole pipeline.
What I think is happening is the consumer group gets reset to the earliest,
but since:
  * the consumer group name is always the same
  * Replica set is 3
  * auto.offset.reset is 'none'
Then, I'm not sure what is the reason for this behaviour.

through log I found out a broker wasn't available, which was the consumer
coordinator:

INFO  AbstractCoordinator:657 (Group coordinator kafka-bkr-0.data:9092 (id:
2147483647 rack: null) is unavailable or invalid, will attempt rediscovery)

ERROR ConsumerCoordinator:748 - Offset commit failed on partition
p011060-syslog0-0 at offset 5499432626: This is not the correct coordinator.

ERROR ConsumerCoordinator:748 Offset commit failed on partition
p011060-syslog0-4 at offset 5498978605: The coordinator is loading and
hence can't process requests.

 ERROR ConsumerCoordinator:748 Offset commit failed on partition
p011060-syslog0-5 at offset 5499236332: Specified group generation id is
not valid.

WARN  AssignedStreamsTasks:202 stream task 0_5 got migrated to another
thread already. Closing it as zombie.

Then the whole stream crashes with:

Caused by: org.apache.kafka.clients.consumer.CommitFailedException: Commit
cannot be completed since the group has already rebalanced and assigned the
partitions to another member. This means that the time between subsequent
calls to poll() was longer than the configured max.poll.interval.ms, which
typically implies that the poll loop is spending too much time message
processing. You can address this either by increasing the session timeout
or by reducing the maximum size of batches returned in poll() with
max.poll.records.


Next time that application starts, the consumer will start reading from the
earliest offset.

I have been trying to replicate this scenario in a dev environment,
shutting down brokers, but everything works as it should be, not offsets
get reset.

Any ideas on what's going on or how can I replicate this scenario?
I thought that using auto.offset.reset = none It will avoid any offset
reset, why doesn't it work?

Setting:
 16 brokers, all running 2.3.0, replica 3 on all topics.
Some of the Consumer config:
  auto.commit.interval.ms = 5000
  auto.offset.reset = none
  enable.auto.commit = false
  connections.max.idle.ms = 540000

Thanks.-



-- 
Richard Rossel
Atlanta - GA

Reply via email to