You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed the typo that used the wrong producer ID and epoch when returning so that we handle epoch overflow correctly.
We also had to rearrange the concurrent transaction handling so that we don't self-fence when we start the new transaction with the new producer ID.
I also tested this with a modified version of the code where epoch overflow happens on the first epoch bump (every request has a new producer id)
Reviewers: Artem Livshits <[email protected]>, Jeff Kim <[email protected]>
@@ -623,28 +623,20 @@ class TransactionsTest extends IntegrationTestHarness {
623
623
// Wait for the expiration cycle to kick in.
624
624
Thread.sleep(600)
625
625
626
-
if (quorum =="zk") {
627
-
// In zk mode, transaction v1 is used.
626
+
TestUtils.waitUntilTrue(() => {
627
+
varfoundException=false
628
628
try {
629
-
// Now that the transaction has expired, the second send should fail with a ProducerFencedException.
629
+
// Now that the transaction has expired, the second send should fail with a InvalidProducerEpochException. We may see some concurrentTransactionsExceptions.
0 commit comments