Hey group,

I added a Pull Request for this KIP - here it is
https://github.com/apache/kafka/pull/5410
Please take a look.

Best,
Stanislav

On Thu, Jul 5, 2018 at 11:06 AM Ismael Juma <isma...@gmail.com> wrote:

> Yes, the Scala consumers have been removed in 2.0.0, which simplifies some
> of this. The following commit was an initial step in unifying the exception
> handling:
>
>
> https://github.com/apache/kafka/commit/96bcfdfc7c9aac075635b2034e65e412a725672e
>
> But more can be done as you mentioned.
>
> Ismael
>
> On 5 Jul 2018 9:36 am, "Stanislav Kozlovski" <stanis...@confluent.io>
> wrote:
>
> Hey Ismael,
>
> It is only slightly related - my PR would attach two new attributes and
> also touch upon deserialization exceptions.
>
> But this PR did provide me with some insight:
> Maybe the best approach would be to make `InvalidRecordException` a public
> exception instead of introducing a new one - I did not realize it was not
> publicly exposed.
> Does the following:
>
>  InvalidMessageException extends CorruptRecordException for temporary
> compatibility with the old Scala clients.
>  * We want to update the server side code to use and catch the new
> CorruptRecordException.
>  * Because ByteBufferMessageSet.scala and Message.scala are used in
> both server and client code having
>  * InvalidMessageException extend CorruptRecordException allows us to
> change server code without affecting the client.
>
> still apply? I can see that the `ByteBufferMessageSet` and `Message` scala
> classes are not present in the codebase anymore. AFAIA the old scala
> clients were removed with 2.0.0 and we can thus update the server side code
> to use the `CorruptRecordException` while changing and exposing
> `InvalidRecordException` to the public. WDYT?
>
> I will also make sure to not expose the cause of the exception when not
> needed, maybe I'll outright remove the `cause` attribute
>
>
> On Thu, Jul 5, 2018 at 4:55 PM Ismael Juma <ism...@juma.me.uk> wrote:
>
> > Thanks for the KIP, Stanislav. The following PR looks related:
> >
> > https://github.com/apache/kafka/pull/4093/files
> >
> > Ismael
> >
> > On Thu, Jul 5, 2018 at 8:44 AM Stanislav Kozlovski <
> stanis...@confluent.io
> > >
> > wrote:
> >
> > > Hey everybody,
> > >
> > > I just created a new KIP about exposing more information in exceptions
> > > caused by consumer record deserialization/validation. Please have a
> look
> > at
> > > it, it is a very short page.
> > >
> > > I am working under the assumption that all invalid record or
> > > deserialization exceptions in the consumer pass through the `Fetcher`
> > > class. Please confirm if that is true, otherwise I might miss some
> places
> > > where the exceptions are raised in my implementation
> > >
> > > One concern I have is the name of the second exception -
> > > `InoperativeRecordException`. I would have named it
> > > `InvalidRecordException` but that is taken. The `Fetcher` class catches
> > > `InvalidRecordException` (here
> > > <
> > >
> >
>
> https://github.com/apache/kafka/blob/c5b00d20d3703b7fc4358b7258d5d6adb890136f/clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java#L1081
> > > >
> > > and here
> > > <
> > >
> >
>
> https://github.com/apache/kafka/blob/c5b00d20d3703b7fc4358b7258d5d6adb890136f/clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java#L1092
> > > >)
> > > and re-raises it as `KafkaException`, which exposes it as a
> non-retriable
> > > exception to the user (`InvalidRecordException` extends
> > > `RetriableExecption`, but `KafkaException` doesn't).
> > > A suggestion I got for an alternative name was
> > > `InvalidFetchRecordException`. Please chime in if you have ideas
> > >
> > > Confluence page: KIP-334
> > > <
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=87297793
> > > >
> > > JIRA Issue: KAFKA-5682 <
> https://issues.apache.org/jira/browse/KAFKA-5682
> > >
> > > --
> > > Best,
> > > Stanislav
> > >
> >
>
>
> --
> Best,
> Stanislav
>


-- 
Best,
Stanislav

Reply via email to