showuon commented on code in PR #12392: URL: https://github.com/apache/kafka/pull/12392#discussion_r943219606
########## clients/src/test/java/org/apache/kafka/clients/producer/internals/TransactionManagerTest.java: ########## @@ -2594,27 +2596,20 @@ public void testDropCommitOnBatchExpiry() throws InterruptedException { } catch (ExecutionException e) { assertTrue(e.getCause() instanceof TimeoutException); } + runUntil(commitResult::isCompleted); // the commit shouldn't be completed without being sent since the produce request failed. assertFalse(commitResult.isSuccessful()); // the commit shouldn't succeed since the produce request failed. - assertThrows(TimeoutException.class, commitResult::await); + assertThrows(KafkaException.class, commitResult::await); - assertTrue(transactionManager.hasAbortableError()); - assertTrue(transactionManager.hasOngoingTransaction()); + assertTrue(transactionManager.hasFatalBumpableError()); + assertFalse(transactionManager.hasOngoingTransaction()); assertFalse(transactionManager.isCompleting()); - assertTrue(transactionManager.transactionContainsPartition(tp0)); - TransactionalRequestResult abortResult = transactionManager.beginAbort(); - - prepareEndTxnResponse(Errors.NONE, TransactionResult.ABORT, producerId, epoch); - prepareInitPidResponse(Errors.NONE, false, producerId, (short) (epoch + 1)); - runUntil(abortResult::isCompleted); - assertTrue(abortResult.isSuccessful()); - assertFalse(transactionManager.hasOngoingTransaction()); - assertFalse(transactionManager.transactionContainsPartition(tp0)); + assertThrows(KafkaException.class, () -> transactionManager.beginAbort()); Review Comment: So, it looks like after this patch, when batch expiration or timeout error, the producer will enter fatal error state after bumping epoch. But before this patch, the we'll abort it and continue the transaction work. Is that right? Sorry, I didn't realize this situation. This will impact current user behavior, so we need more discussion. I'll ping some experts in this PR, and hope they will help provide comments. cc @artemlivshits @ijuma -- 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. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org