[
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 <[email protected]>
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)