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/07/16 00:01:42 UTC

[GitHub] [kafka] hachikuji commented on a change in pull request #9026: KAFKA-10274; Consistent timeouts in transactions_test

hachikuji commented on a change in pull request #9026:
URL: https://github.com/apache/kafka/pull/9026#discussion_r455432589



##########
File path: tests/kafkatest/tests/core/transactions_test.py
##########
@@ -47,11 +47,15 @@ def __init__(self, test_context):
         self.num_output_partitions = 3
         self.num_seed_messages = 100000
         self.transaction_size = 750
-        # The timeout of transaction should be lower than the timeout of verification. The transactional message sent by
-        # client may be not correctly completed in hard_bounce mode. The pending transaction (unstable offset) stored by
-        # broker obstructs TransactionMessageCopier from getting offset of partition which is used to calculate
-        # remaining messages after restarting.
-        self.transaction_timeout = 5000
+
+        # The transaction timeout should be lower than the progress timeout, but at
+        # least as high as the request timeout (which is 30s by default). When the
+        # client is hard-bounced, progress may depend on the previous transaction
+        # being aborted. When the broker is hard-bounced, we may have to wait as
+        # long as the request timeout to get a `Produce` response and we do not
+        # want the coordinator timing out the transaction.
+        self.transaction_timeout = 40000
+        self.progress_timeout_sec = 60

Review comment:
       What might be preferable is to provide a way to override the request timeout in `TransactionalMessageCopier` so that we can use lower values in all cases. Unfortunately we didn't give this class an easy way to override producer configurations, so we would need another argument. I decided to hold off on this, but I can reconsider it if you think it's worthwhile. This service (as well as `VerifiableConsumer` and `VerifiableProducer`) are a bit of a grey area as far as whether they are public APIs or not, but I have tended to take the interpretation that they are not 🙂 .




----------------------------------------------------------------
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