Hi Otavio, Awesome. Thank you very much. I’ll give it a go when it is released. ☺
Best regards, Yuttana From: Otavio Rodolfo Piske <angusyo...@gmail.com> Sent: Tuesday, 22 November 2022 3:33 am To: users@camel.apache.org Cc: Yuttana Sangchoei <yuttana.sangch...@anz.com>; Jack McKenzie <jack.mcken...@anz.com>; Nicholas Crosthwaite <nicholas.crosthwa...@anz.com>; Robert Buck <robert.b...@anz.com>; Ruiyi ( Ray ) Zhang ( Ray ) <ruiyiray.zh...@anz.com> Subject: Re: Re: Re: Offset in OffsetRepositoy doesn't get increase after manual commit Hi, After reviewing the code, I think that it is, indeed, a bug. As such, I created a PR which should solve the problem: https://github.com/apache/camel/pull/8746. This is a patch for the upcoming 3.20.0. I would kindly appreciate it if you could give a try with this version of Camel, so I can safely backport for Camel 3.18 (LTS). Kind regards On Sat, Nov 19, 2022 at 12:21 PM Otavio Rodolfo Piske <angusyo...@gmail.com<mailto:angusyo...@gmail.com>> wrote: Hi, I am glad that you managed to adjust it to work the way you need. "In my opinion, the offset repository should be used in case we define it in the Kafka endpoint no matter if it is AsyncCommitManager, SyncCommitManager or NoopCommitManager. I’m not so sure if my thought is correct. Could you please let me know the right behaviour of the CommitManagers?" I think it's a bug on our code - but I am not 100% sure yet. If the user provides a state repository, then it should be updated when the commit happens. I'll take a look at this during this week, so, please keep an eye on the ticket as I'll provide updates there if/when I fix it. Thanks for reporting this. Kind regards On Wed, Nov 16, 2022 at 11:10 AM Yuttana Sangchoei <tanay...@gmail.com<mailto:tanay...@gmail.com>> wrote: Hi Otavio, Thank you for creating the ticket. I found where the problem might be in 3.18.3. At CommitManager in createCommitManager static method, there are some check starting by checking if isAllowManualCommit, if so it continues checking the type of manualCommitFactory. However, if not, it checks the configuration if there is offset repository defined, then return CommitToOffsetManager object. I want CommitToOffsetManager so I removed the flag, allowManualCommit=true, out of the Kafka endpoint. It works as expect. The offset in the offset repository gets increased. In my opinion, the offset repository should be used in case we define it in the Kafka endpoint no matter if it is AsyncCommitManager, SyncCommitManager or NoopCommitManager. I’m not so sure if my thought is correct. Could you please let me know the right behaviour of the CommitManagers? Thank you very much and best regards, Yuttana On 2022/11/12 08:05:14 Otavio Rodolfo Piske wrote: > Thanks. I can't confirm whether it's an user error, bug or anything else, > but I created a ticket so I can investigate this: > https://issues.apache.org/jira/browse/CAMEL-18717 > > I also can't provide an ETA yet, as I have a busy week ahead, but I'll keep > it on my radar. In the meantime, please do feel free to contribute with a > reproducer or even propose a bug fix if you want as any of those will > certainly make the resolution faster. We love receiving contributions. > > Kind regards > > On Fri, Nov 11, 2022 at 10:28 AM Sangchoei, Yuttana > <yu...@anz.com.invalid<mailto:yu...@anz.com.invalid>> wrote: > > > Hi Otavio, Clays, > > > > > > Thank you very much for your hands. I tried 3.18.3. It didn't increase the > > offset. > > > > Best regards, > > Yuttana > > > > > > On 2022/11/10 06:36:08 Otavio Rodolfo Piske wrote: > > > Hi, before I go ahead and investigate this further ... Could you possibly > > > try with Camel 3.18.3? We have made a bunch of fixes for Kafka in 3.18.3. > > > > > > Kind regards > > > > > > On Wed, Nov 9, 2022 at 3:56 PM Claus Ibsen > > > <cl...@gmail.com<mailto:cl...@gmail.com>> wrote: > > > > > > > Hi > > > > > > > > I am not sure, there are some improvements and refactorings going on in > > > > camel-kafka and offset management. > > > > I think Otavio would be better to help look into this. > > > > > > > > On Wed, Nov 9, 2022 at 11:36 AM Sangchoei, Yuttana > > > > <yu...@anz.com.invalid<mailto:yu...@anz.com.invalid>> wrote: > > > > > > > > > Hi All, > > > > > > > > > > I'm upgrading Camel from 3.16 to 3.17 and found a problem that > > > > > OffsetRepository didn't get update after manual commit. > > > > > It is a Spring boot project and MemoryStateRepository as follows. > > > > > > > > > > @Bean > > > > > public MemoryStateRepository offsetRepo() { > > > > > MemoryStateRepository stateRepository = new > > > > > MemoryStateRepository(); > > > > > stateRepository.setState(topic + "/0", ""); > > > > > return stateRepository; > > > > > } > > > > > > > > > > Here is the method I use when commit: > > > > > > > > > > private void commitOffsetToKafka(Exchange exchange) { > > > > > KafkaManualCommit manual = > > > > > exchange.getIn().getHeader(KafkaConstants.MANUAL_COMMIT, > > > > > KafkaManualCommit.class); > > > > > manual.commit(); > > > > > } > > > > > > > > > > Here is my Kafka endpoint > > > > > > > > > > kafka:integration_test > > > > > _topic?brokers=127.0.0.1:41478<http://127.0.0.1:41478> > > > > > > > > > > > &autoCommitEnable=false&allowManualCommit=true&seekTo=beginning&maxPollRecords=2&groupId=ANE&autoOffsetReset=earliest&offsetRepository=#offsetRepo&kafkaManualCommitFactory=#class:org.apache.camel.component.kafka.consumer.DefaultKafkaManualCommitFactory > > > > > > > > > > It is working fine in 3.16. When > > DefaultkafkaManualSyncCommit.commit() is > > > > > invoked. The offsetRepository.setState() get invoked so the offset > > > > > increased. > > > > > However, in 3.17, DefaultkafkaManualSyncCommit.commit() doesn't have > > a > > > > > reference to offsetRepository so the offset in offsetRepository > > won't get > > > > > increased. > > > > > > > > > > Is this a bug or there is a different way to get the offset after > > > > > committing. Could you please suggest what I should do to test if the > > > > offset > > > > > get increased after manual commit? > > > > > > > > > > Best regards, > > > > > Yuttana Sangchoei > > > > > > > > > > This e-mail and any attachments to it (the "Communication") is, > > unless > > > > > otherwise stated, confidential, may contain copyright material and > > is for > > > > > the use only of the intended recipient. If you receive the > > Communication > > > > in > > > > > error, please notify the sender immediately by return e-mail, delete > > the > > > > > Communication and the return e-mail, and do not read, copy, > > retransmit or > > > > > otherwise deal with it. Any views expressed in the Communication are > > > > those > > > > > of the individual sender only, unless expressly stated to be those of > > > > > Australia and New Zealand Banking Group Limited ABN 11 005 357 522, > > or > > > > any > > > > > of its related entities including ANZ Bank New Zealand Limited > > (together > > > > > "ANZ"). ANZ does not accept liability in connection with the > > integrity of > > > > > or errors in the Communication, computer virus, data corruption, > > > > > interference or delay arising from or in respect of the > > Communication. > > > > > > > > > > > > > > > > > -- > > > > Claus Ibsen > > > > ----------------- > > > > @davsclaus > > > > Camel in Action 2: https://www.manning.com/ibsen2 > > > > > > > > > > > > > -- > > > Otavio R. Piske > > > http://orpiske.net > > > > > > > Get Outlook for Android<https://aka.ms/AAb9ysg> > > This e-mail and any attachments to it (the "Communication") is, unless > > otherwise stated, confidential, may contain copyright material and is for > > the use only of the intended recipient. If you receive the Communication in > > error, please notify the sender immediately by return e-mail, delete the > > Communication and the return e-mail, and do not read, copy, retransmit or > > otherwise deal with it. Any views expressed in the Communication are those > > of the individual sender only, unless expressly stated to be those of > > Australia and New Zealand Banking Group Limited ABN 11 005 357 522, or any > > of its related entities including ANZ Bank New Zealand Limited (together > > "ANZ"). ANZ does not accept liability in connection with the integrity of > > or errors in the Communication, computer virus, data corruption, > > interference or delay arising from or in respect of the Communication. > > > > > -- > Otavio R. Piske > http://orpiske.net > -- Otavio R. Piske http://orpiske.net -- Otavio R. Piske http://orpiske.net This e-mail and any attachments to it (the "Communication") is, unless otherwise stated, confidential, may contain copyright material and is for the use only of the intended recipient. If you receive the Communication in error, please notify the sender immediately by return e-mail, delete the Communication and the return e-mail, and do not read, copy, retransmit or otherwise deal with it. Any views expressed in the Communication are those of the individual sender only, unless expressly stated to be those of Australia and New Zealand Banking Group Limited ABN 11 005 357 522, or any of its related entities including ANZ Bank New Zealand Limited (together "ANZ"). ANZ does not accept liability in connection with the integrity of or errors in the Communication, computer virus, data corruption, interference or delay arising from or in respect of the Communication.