Hello,

I'm investigating an issue in which a Kafka Streams application does not consume from one of the partitions it was assigned. I'm using the 2.3.0 version.

All the fetch requests are sent for two partitions only:

> Using older server API v6 to send FETCH {replica_id=-1,max_wait_time=500,min_bytes=1,max_bytes=52428800,isolation_level=0,topics=[{topic=Topic_v2,partitions=[{partition=25,fetch_offset=71484113,log_start_offset=-1,partition_max_bytes=1048576},{partition=22,fetch_offset=71296374,log_start_offset=-1,partition_max_bytes=1048576}]}]} with correlation id 1049090 to node 1

But there should be three of them; using kafka-consumer-groups.sh I can see that the third one (partition 23) that has no current offset.

> Topic_v2    22         71296374        71296374 0 Topic-c1f03-StreamThread-1-consumer > Topic_v2    23         -                      72830772 -          Topic-c1f03-StreamThread-1-consumer > Topic_v2    25         71484113        71484113 0 Topic-c1f03-StreamThread-1-consumer

It worked fine until the partition was revoked, but absolutely nothing happened afterwards. Notice that the (shortened by me) clientId has changed.

> 2019-07-10 02:15:36.347 [INFO] ConsumerCoordinator:Topic-c1f03-StreamThread-1 - [Consumer clientId=Topic-c1f03-StreamThread-1-consumer, groupId=Topic] Setting offset for partition Topic_v2-23 to the committed offset FetchPosition{offset=68735327, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=ip-10-0-1-81.us-west-2.compute.internal:9092 (id: 3 rack: null), epoch=-1}} > 2019-07-10 02:15:36.383 [INFO] ConsumerCoordinator:Topic-3e717-StreamThread-1 - [Consumer clientId=Topic-3e717-StreamThread-1-consumer, groupId=Topic] Revoking previously assigned partitions [Topic_v2-23] > 2019-07-10 02:15:36.498 [INFO] ConsumerCoordinator:Topic-3e717-StreamThread-1 - [Consumer clientId=Topic-3e717-StreamThread-1-consumer, groupId=Topic] Setting newly assigned partitions: Topic_v2-23 > 2019-07-10 02:15:36.506 [INFO] ConsumerCoordinator:Topic-3e717-StreamThread-1 - [Consumer clientId=Topic-3e717-StreamThread-1-consumer, groupId=Topic] Setting offset for partition Topic_v2-23 to the committed offset FetchPosition{offset=70030508, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=ip-10-0-1-81.us-west-2.compute.internal:9092 (id: 3 rack: null), epoch=-1}}

What could be a reason that this partition is not included in the fetch request? It uses a single thread to process it (num.stream.threads set to 1), so if the thread was locked it couldn't keep working on two other partitions, if I understand correctly.

Reply via email to