Skip to content

Commit 23cfb98

Browse files
authored
MINOR VerifableProducer ducktape can set idempotency and retries (#19362)
It is currently impossible to set both number of retries and idempotency in the DucktapeVerifiable producer. This change allows that to occur. Reviewers: PoAn Yang <[email protected]>, Manikumar Reddy <[email protected]>
1 parent 88a6402 commit 23cfb98

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

tests/kafkatest/services/verifiable_producer.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,14 @@ def _worker(self, idx, node):
144144
self.logger.info("VerifiableProducer (index = %d) will use acks = %s", idx, self.acks)
145145
producer_prop_file += "\nacks=%s\n" % self.acks
146146

147-
if self.enable_idempotence:
147+
if self.enable_idempotence and self.retries is not None:
148+
assert self.retries > 0, "Retries must be greater than 0 when used with idempotence"
149+
self.logger.info("VerifiableProducer (index = %d) will use idempotence and retries = %s", idx, self.retries)
150+
producer_prop_file += "\nmax.in.flight.requests.per.connection=5\n"
151+
producer_prop_file += "\nenable.idempotence=true\n"
152+
producer_prop_file += "\nretries=%s\n" % self.retries
153+
producer_prop_file += "\ndelivery.timeout.ms=%s\n" % (self.request_timeout_sec * 1000 * self.retries)
154+
elif self.enable_idempotence:
148155
self.logger.info("Setting up an idempotent producer")
149156
producer_prop_file += "\nmax.in.flight.requests.per.connection=5\n"
150157
producer_prop_file += "\nretries=1000000\n"

0 commit comments

Comments
 (0)