You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/05/11 09:25:04 UTC

[jira] [Commented] (KAFKA-5006) KeyValueStore.put may throw exception unrelated to the current put attempt

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

ASF GitHub Bot commented on KAFKA-5006:
---------------------------------------

GitHub user enothereska opened a pull request:

    https://github.com/apache/kafka/pull/3021

    KAFKA-5006: change exception path

    This should be backported to 0.10.2 as well. 

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/enothereska/kafka KAFKA-5006-put-exception

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/kafka/pull/3021.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3021
    
----
commit 237b6624289ac937c2781a3c513462269efe373e
Author: Eno Thereska <en...@gmail.com>
Date:   2017-05-11T09:23:29Z

    Change exception path

----


> KeyValueStore.put may throw exception unrelated to the current put attempt
> --------------------------------------------------------------------------
>
>                 Key: KAFKA-5006
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5006
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: streams
>    Affects Versions: 0.10.0.0, 0.10.1.0, 0.10.2.0
>            Reporter: Xavier Léauté
>            Assignee: Eno Thereska
>              Labels: user-experience
>             Fix For: 0.11.0.0
>
>
> It is possible for {{KeyValueStore.put(K key, V value)}} to throw an exception unrelated to the store in question. Due to [the way that {{RecordCollector.send}} is currently implemented|https://github.com/confluentinc/kafka/blob/3.2.x/streams/src/main/java/org/apache/kafka/streams/processor/internals/RecordCollectorImpl.java#L76]
> the exception thrown would be for any previous record produced by the stream task, possibly for a completely unrelated topic the same task is producing to.
> This can be very confusing for someone attempting to correctly handle exceptions thrown by put(), as they would not be able to add any additional debugging information to understand the operation that caused the problem. Worse, such logging would likely confuse the user, since they might mislead themselves into thinking the changelog record created by calling put() caused the problem.
> Given that there is likely no way for the user to recover from an exception thrown by an unrelated produce request, it is questionable whether we should even try to raise the exception at this level. A short-term fix would be to simply delegate this exception to the uncaught exception handler.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)