[ https://issues.apache.org/jira/browse/KAFKA-5006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on KAFKA-5006 started by Eno Thereska. ------------------------------------------- > 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)