I saw this in code of 0.9.0.1. I am sure about this because i am caching
this exception and executing a logic where i stop further record processing
if autocommit is off else i keep processing records got in current poll
even if commit fails. This is because kafka marks all records sent to user
as committed just before a rebalance only when autocommit in on otherwise
with autocommit off, in next poll kafka sends records from last commited
offset by consumer. I have seen some cases where autocommit also fails but
that happened rarely and i did not got a chance to investigate that.

Regards,
Vinay
On Apr 29, 2016 6:12 AM, "Phil Luckhurst" <phil.luckhu...@encycle.com>
wrote:

> Hi Vinay,
>
> This statement is very interesting.
>
> "I noticed that in case where a consumer is marked dead or a rebalance is
> in progress, kafka throws CommitFailedException. A KafkaException is thrown
> only when something unknown has happened which is not yet categorized."
>
> I will test this out but was this with 0.9.01 or 0.10.1.0? If commitSync
> fails with CommitFailedException when the consumer is marked dead then that
> is the final piece to my jigsaw. If I get that exception I know I can
> safely abandon the current batch of records I am processing and return to
> my poll command knowing that the ones I haven’t committed will be picked up
> after the rebalance completes.
>
> Many thanks,
> Phil
>
> -----Original Message-----
> From: vinay sharma [mailto:vinsharma.t...@gmail.com]
> Sent: 28 April 2016 21:34
> To: users@kafka.apache.org
> Subject: Re: Detecting rebalance while processing ConsumerRecords (0.9.0.1)
>
> Hi Phil,
>
> I tested my code and it is correct. I do see heartbeats getting missed
> sometimes and causing session time out for consumer where generation is
> marked dead. I see that there are long time windows where there is no
> heartbeat whereas i do commit in between these time windows and there is no
> reason to skip a heartbeat as the last hearbeat was way before configured
> heartbeat interval. I ran tests with kafka client jar build from trunk
> (0.10.1.0) and it works fine due to latest changes where each commitSync
> acts as a heartbeat.
>
> Calling commitSync after each record processing works fine because it
> triggers more number of heartbeat requests in a timeinterval making chances
> extremely small where heartbeats can be missed for more than session time
> out.
>
> You wrote in a previous mail that
>
> "I thought having commitSync throw an explicit 'rebalance in progress' type
> > exception rather than just a KafkaException would allow this to be
> > easily identified and handled."
>
>
> I noticed that in case where a consumer is marked dead or a rebalance is
> in progress, kafka throws CommitFailedException. A KafkaException is thrown
> only when something unknown has happened which is not yet categorized.
>
>
> Regards,
> Vinay
>
> On Wed, Apr 27, 2016 at 7:52 AM, vinay sharma <vinsharma.t...@gmail.com>
> wrote:
>
> > Hi Phil,
> >
> > This sounds great. Thanks for trying these serrings. This means
> > probably something wrong in my code or setup. I will check what is
> > causing this issue in my case.
> >
> > I have a 3 broker 1 zk cluster and my topic has 3 partitions with
> > replication factor 3.
> >
> > Regards,
> > Vinay Sharma
> >
>

Reply via email to