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
> > > > > > > > > > > >
>
>

Reply via email to