Hi Justine,

I did not update the KIP with `TxnSendOption` since I thought it'd be
better discussed here beforehand.
right now, there are 2 PRs:
- the PR that implements the current version of the KIP:
https://github.com/apache/kafka/pull/16332
- the POC PR that clarifies the `TxnSendOption`:
https://github.com/apache/kafka/pull/16465

Bests,
Alieh

On Thu, Jun 27, 2024 at 12:42 AM Justine Olshan
<jols...@confluent.io.invalid> wrote:

> Hey Alieh,
>
> I think I am a little confused. Are the 3 points above addressed by the KIP
> or did something change? The PR seems to not include this change and still
> has the CommitOption as well.
>
> Thanks,
> Justine
>
> On Wed, Jun 26, 2024 at 2:15 PM Alieh Saeedi <asae...@confluent.io.invalid
> >
> wrote:
>
> > Hi all,
> >
> >
> > Looking at the PR <https://github.com/apache/kafka/pull/16332>
> > corresponding to the KIP, there are some points worthy of mention:
> >
> >
> > 1) clearing the error ends up dirty/messy code in `TransactionManager`.
> >
> > 2) By clearing the error, we are actually doing an illegal transition
> from
> > `ABORTABLE_ERROR` to `IN_TRANSACTION` which is conceptually not
> acceptable.
> > This can be the root cause of some issues, with perhaps further future
> > changes by others.
> >
> > 3) If the poison pill record `r1` causes a transition to the error state
> > and then the next record `r2` requires adding a partition to the
> > transaction, the action fails due to being in the error state. In this
> > case, clearing errors during `commitTnx(CLEAR_SEND_ERROR)` is too late.
> > However, this case can NOT be the main concern as soon as KIP-890 is
> fully
> > implemented.
> >
> >
> > My suggestion is to solve the problem where it arises. If the transition
> to
> > the error state does not happen during `send()`, we do not need to clear
> > the error later. Therefore, instead of `CommitOption`, we can define a
> > `TxnSendOption` and prevent the `send()` method from going to the error
> > state in case 1) we're in a transaction and 2) the user asked for
> > IGONRE_SEND_ERRORS. For more clarity, you can take a look at the POC PR
> > <https://github.com/apache/kafka/pull/16465>.
> >
> > Cheers,
> > Alieh
> >
>

Reply via email to