+1
On 10/19/20 12:33 PM, John Roesler wrote: > Thanks, Walker. > > That change looks good to me. > > -John > > On Mon, 2020-10-19 at 12:06 -0700, Walker Carlson wrote: >> Hello all, >> >> Taking into account the feedback about that last change I have removed some >> of the changes and no longer will we have a separate handler for the global >> thread. To make it so we can align the handlers there will also be no >> option to just remove a stream thread. >> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-671%3A+Introduce+Kafka+Streams+Specific+Uncaught+Exception+Handler >> >> If you have any concerns please let me know, >> Walker >> >> On Wed, Oct 14, 2020 at 12:51 PM John Roesler <vvcep...@apache.org> wrote: >> >>> Thanks, Sophie, >>> >>> That makes sense. Should we add a whole new interface and a >>> separate kind of listener just because global threads don't >>> support restarts _yet_, though? >>> >>> It seems like that will just widen the API surface area, and >>> in a few more months, there will be no more difference >>> between the two handlers. But people will forever afterward >>> have to register two different handlers to do the same >>> thing. >>> >>> Two alternatives we could consider: >>> 1. Just don't add the "restart" option until it's possible >>> for all threads. This KIP is already accepted with a >>> "restart" option that we know won't be added until KIP-663 >>> is done. Maybe we just wait for KIP-406 as well. But the >>> _rest_ of this KIP can be implemented in the mean time. >>> 2. Just log an error and kill the thread anyway if the >>> handler for the global thread opts to "retry". >>> >>> In general, it seems like the problem at hand is better >>> solved by allowing/disallowing that one option, versus >>> adding a whole new interface. >>> >>> Thanks, >>> -John >>> >>> On Wed, 2020-10-14 at 11:48 -0700, Sophie Blee-Goldman >>> wrote: >>>> I don't think the proposal was to *never* add the "replace" functionality >>>> for >>>> the global thread, but we didn't want to tie up this KIP with anything >>> more. >>>> As I understand it, the goal of Walker's proposal was to set us up for >>>> success if/when we want to add new functionality for the global thread, >>>> without necessarily committing to it at this time. >>>> >>>> Restarting the global thread will take a bit more work since you need to >>>> pause any further work that relies on global state until it's back up. >>>> That's >>>> starting to sound more in the purview of KIP-406 whose current goal >>>> is to effectively restart the global thread on a specific type of >>> exception >>>> (OffsetOutOfRange). If we want to consider expanding that to allow users >>>> to choose to restart the thread, then KIP-406 seems like the more >>>> appropriate place to engage in that discussion. >>>> >>>> On Wed, Oct 14, 2020 at 7:13 AM John Roesler <vvcep...@apache.org> >>> wrote: >>>>> Hello Walker, >>>>> >>>>> Sorry for the late reply, but I didn’t follow the reasoning for the >>>>> separate handler. You said that the global thread doesn’t have >>> “replace”, >>>>> but as of today, none of the threads have “replace”. Why not add that >>>>> ability when we add it for the other threads? >>>>> >>>>> The nature of an uncaught exception handler is that there is an >>> exception >>>>> that will kill the thread. In that case, it seems like replacement is a >>>>> desirable option. >>>>> >>>>> What have I missed? >>>>> >>>>> Thanks, >>>>> John >>>>> >>>>> On Tue, Oct 13, 2020, at 15:49, Walker Carlson wrote: >>>>>> Those are good points Sophie and Matthias. I sepificed the defaults >>> in >>>>> the >>>>>> kip and standardized the names fo the handler to make them a bit more >>>>>> readable. >>>>>> >>>>>> Thanks for the suggestions, >>>>>> Walker >>>>>> >>>>>> On Tue, Oct 13, 2020 at 12:24 PM Sophie Blee-Goldman < >>>>> sop...@confluent.io> >>>>>> wrote: >>>>>> >>>>>>> Super nit: can we standardize the method & enum names? >>>>>>> >>>>>>> Right now we have these enums: >>>>>>> StreamsUncaughtExceptionHandlerResponse >>>>>>> StreamsUncaughtExceptionHandlerResponseGlobalThread >>>>>>> >>>>>>> and these callbacks: >>>>>>> handleUncaughtException() >>>>>>> handleExceptionInGlobalThread() >>>>>>> >>>>>>> The method names have different syntax, which is a bit clunky. I >>> don't >>>>> have >>>>>>> any >>>>>>> strong opinions on what grammar they should follow, just that it >>>>> should be >>>>>>> the >>>>>>> same for each. I also think that we should specify "StreamThread" >>>>> somewhere >>>>>>> in the name of the StreadThread-specific callback, now that we >>> have a >>>>>>> second >>>>>>> callback that specifies it's for the GlobalThread. Something like >>>>>>> "*handleStreamThreadException()*" and >>> "*handleGlobalThreadException*" >>>>>>> The enums are ok, although I think we should include "StreamThread" >>>>>>> somewhere >>>>>>> like with the callbacks. And we can probably shorten them a bit. >>> For >>>>>>> example >>>>>>> "*StreamThreadExceptionResponse*" and >>> "*GlobalThreadExceptionResponse*" >>>>>>> >>>>>>> >>>>>>> On Tue, Oct 13, 2020 at 11:48 AM Matthias J. Sax <mj...@apache.org >>>>> wrote: >>>>>>>> Thanks Walker. >>>>>>>> >>>>>>>> Overall, LGTM. However, I am wondering if we should have default >>>>>>>> implementations for both handler methods? Before the latest >>> change, >>>>>>>> there was only one method and having a default was not necessary. >>>>>>>> However, forcing people to implement both methods might not be >>> the >>>>> best >>>>>>>> user experience: for example, if there is no global thread, one >>>>> should >>>>>>>> not need to implement the global handler method (and the other >>> way >>>>>>> around). >>>>>>>> Thus, it might be good to add default for both methods. If we add >>>>>>>> defaults, we should explain the default behavior to the KIP. >>>>>>>> >>>>>>>> -Matthias >>>>>>>> >>>>>>>> On 10/12/20 2:32 PM, Walker Carlson wrote: >>>>>>>>> Hello all, >>>>>>>>> >>>>>>>>> I just wanted to let you know that I had to make 2 minor >>> updates >>>>> to the >>>>>>>> KIP. >>>>>>>>> 1) I changed the behavior of the shutdown client to not leave >>> the >>>>>>> client >>>>>>>> in >>>>>>>>> Error but instead close directly because this aligns better >>> with >>>>> our >>>>>>>>> state machine. >>>>>>>>> >>>>>>>>> 2) I added a separate call back for the global thread as it >>> does >>>>> not >>>>>>> have >>>>>>>>> all the options as a streamThread does. i.e. replace. The >>> default >>>>> will >>>>>>> be >>>>>>>>> to close the client. that will also be the only option as that >>> is >>>>> the >>>>>>>>> current behavior for the global thread. >>>>>>>>> >>>>>>>>> you can find the diff here: >>>>>>>>> >>> https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=158876566&originalVersion=21&revisedVersion=23 >>>>>>>>> If you have any problems with these changes let me know and we >>> can >>>>>>>> discuss >>>>>>>>> them further >>>>>>>>> >>>>>>>>> Thank you, >>>>>>>>> Walker >>>>>>>>> >>>>>>>>> On Wed, Sep 30, 2020 at 7:33 AM Walker Carlson < >>>>> wcarl...@confluent.io> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Bruno Cadonna <br...@confluent.io> >>>>>>>>>> 4:51 AM (2 hours ago) >>>>>>>>>> to dev >>>>>>>>>> Thank you all for voting! >>>>>>>>>> >>>>>>>>>> This KIP is accepted with +3 binding (Guozhang, Bill, >>> Matthias) >>>>> and +2 >>>>>>>>>> non-binding (Bruno, Leah). >>>>>>>>>> >>>>>>>>>> Matthias, we will take care of the global threads, and for >>> the >>>>>>>>>> replacement that will depend on Kip-663. >>>>>>>>>> >>>>>>>>>> Best, >>>>>>>>>> >>>>>>>>>> On Wed, Sep 30, 2020 at 4:59 AM Bruno Cadonna < >>> br...@confluent.io >>>>>>>> wrote: >>>>>>>>>>> Thanks a lot Walker! >>>>>>>>>>> >>>>>>>>>>> +1 (non-binding) >>>>>>>>>>> >>>>>>>>>>> Best, >>>>>>>>>>> Bruno >>>>>>>>>>> >>>>>>>>>>> On 30.09.20 03:10, Matthias J. Sax wrote: >>>>>>>>>>>> Thanks Walker. The proposed API changes LGTM. >>>>>>>>>>>> >>>>>>>>>>>> +1 (binding) >>>>>>>>>>>> >>>>>>>>>>>> One minor nit: you should also mention the global-thread >>> that >>>>> also >>>>>>>> needs >>>>>>>>>>>> to be shutdown if requested by the user. >>>>>>>>>>>> >>>>>>>>>>>> Minor side question: should we actually terminate a >>> thread and >>>>>>> create >>>>>>>> a >>>>>>>>>>>> new one, or instead revive the existing thread (reusing >>> its >>>>> existing >>>>>>>>>>> ID)? >>>>>>>>>>>> -Matthias >>>>>>>>>>>> >>>>>>>>>>>> On 9/29/20 2:39 PM, Bill Bejeck wrote: >>>>>>>>>>>>> Thanks for the KIP Walker. >>>>>>>>>>>>> >>>>>>>>>>>>> +1 (binding) >>>>>>>>>>>>> >>>>>>>>>>>>> -Bill >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Sep 29, 2020 at 4:59 PM Guozhang Wang < >>>>> wangg...@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>>>>> +1 again on the KIP. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Sep 29, 2020 at 1:51 PM Leah Thomas < >>>>> ltho...@confluent.io >>>>>>>>>>> wrote: >>>>>>>>>>>>>>> Hey Walker, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks for the KIP! I'm +1, non-binding. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>>> Leah >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Tue, Sep 29, 2020 at 1:56 PM Walker Carlson < >>>>>>>>>>> wcarl...@confluent.io> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hello all, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I made some changes to the KIP the descriptions >>> are on the >>>>>>>>>>> discussion >>>>>>>>>>>>>>>> thread. If you have already voted I would ask >>> you to confirm >>>>>>> your >>>>>>>>>>> vote. >>>>>>>>>>>>>>>> Otherwise please vote so we can get this feature >>> in. >>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>> Walker >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Thu, Sep 24, 2020 at 4:36 PM John Roesler < >>>>>>> vvcep...@apache.org >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> Thanks for the KIP, Walker! >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I’m +1 (binding) >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -John >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Mon, Sep 21, 2020, at 17:04, Guozhang Wang >>> wrote: >>>>>>>>>>>>>>>>>> Thanks for finalizing the KIP. +1 (binding) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Guozhang >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Mon, Sep 21, 2020 at 1:38 PM Walker >>> Carlson < >>>>>>>>>>>>>>> wcarl...@confluent.io> >>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Hello all, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I would like to start a thread to vote for >>> KIP-671 to >>>>> add a >>>>>>>>>>>>>> method >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>>>> close >>>>>>>>>>>>>>>>>>> all clients in a kafka streams application. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> KIP: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-671%3A+Shutdown+Streams+Application+when+appropriate+exception+is+thrown >>>>>>>>>>>>>>>>>>> Discussion thread: *here >>>>>>>>>>>>>>>>>>> < >>>>>>>>>>>>>>>>>>> >>> https://mail-archives.apache.org/mod_mbox/kafka-dev/202009.mbox/%3CCAC55fuh3HAGCxz-PzxTJraczy6T-os2oiCV328PBeuJQSVYASg%40mail.gmail.com%3E >>>>>>>>>>>>>>>>>>>> * >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>> -Walker >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> -- Guozhang >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> -- Guozhang >>>>>>>>>>>>>> >