kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-3708) Rethink exception handling in KafkaStreams
Date Wed, 28 Sep 2016 18:09:21 GMT

    [ https://issues.apache.org/jira/browse/KAFKA-3708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15530414#comment-15530414

ASF GitHub Bot commented on KAFKA-3708:

Github user asfgit closed the pull request at:


> Rethink exception handling in KafkaStreams
> ------------------------------------------
>                 Key: KAFKA-3708
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3708
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: streams
>    Affects Versions:
>            Reporter: Guozhang Wang
>            Assignee: Damian Guy
>              Labels: user-experience
>             Fix For:,
> As for, the worker threads (i.e. {{StreamThreads}}) can possibly encounter the
following runtime exceptions:
> 1) {{consumer.poll()}} could throw KafkaException if some of the configuration are not
accepted, such as topics not authorized to read / write (security), session-timeout value
not valid, etc; these exceptions will be thrown in the first ever {{poll()}}.
> 2) {{task.addRecords()}} could throw KafkaException (most likely SerializationException)
if the deserialization fails.
> 3) {{task.process() / punctuate()}} could throw various KafkaException; for example,
serialization / deserialization errors, state storage operation failures (RocksDBException,
for example),  producer sending failures, etc.
> 4) {{maybeCommit / commitAll / commitOne}} could throw various Exceptions if the flushing
of state store fails, and when {{consumer.commitSync}} throws exceptions other than {{CommitFailedException}}.
> For all the above 4 cases, KafkaStreams does not capture and handle them, but expose
them to users, and let users to handle them via {{KafkaStreams.setUncaughtExceptionHandler}}.
We need to re-think if the library should just handle these cases without exposing them to
users and kill the threads / migrate tasks to others since they are all not recoverable.

This message was sent by Atlassian JIRA

View raw message