You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by GitBox <gi...@apache.org> on 2020/06/19 04:04:43 UTC

[GitHub] [kafka] ableegoldman commented on a change in pull request #8900: KAFKA-10169: swallow non-fatal KafkaException and don't abort transaction during clean close

ableegoldman commented on a change in pull request #8900:
URL: https://github.com/apache/kafka/pull/8900#discussion_r442619459



##########
File path: streams/src/main/java/org/apache/kafka/streams/processor/internals/StreamTask.java
##########
@@ -522,7 +522,7 @@ private void close(final boolean clean) {
         if (clean && commitNeeded) {
             log.debug("Tried to close clean but there was pending uncommitted data, this means we failed to"
                           + " commit and should close as dirty instead");
-            throw new StreamsException("Tried to close dirty task as clean");

Review comment:
       This was a sort-of bug: because we don't close things during `handleRevocation`, we want to make sure the TM will close this as dirty during `handleAssignment`. So we throw this just to force it to call `closeDirty` -- but it wasn't necessarily a fatal exception that caused commit to fail, so we should just throw TaskMigrated here.
   That said, it doesn't really matter since the ConsumerCoordinator will save and rethrow only the first exception, which is the `handleRevocation` exception. Anything we throw in `handleAssignment` is "lost" -- but we should do the right thing anyway




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org