Hi,
I noticed that when a broker is unavailable, the producer does not attempt any 
retries.
When diving into the source code, I noticed that since the node is considered 
“not ready”, the request is never sent in the first place, and the batch 
expires without any retry.

Steps to reproduce:

-          Set up a single broker cluster.

-          Setup a producer with many retries

-          Run the code below

-          During the waiting time, shut down the broker.

Is this the expected behavior?

Thanks,
Omer







Code:

producer.send(new ProducerRecord<>("test_topic", "test", "initial message"), 
null);
try {
                synchronized (producer) {
                                producer.wait(1000 * 30);
                }
} catch (InterruptedException e) {}

producer.send(new ProducerRecord<>("test_topic", "test", "second message"), 
null);
-------------------------------------------
NOTICE:
This email and all attachments are confidential, may be proprietary, and may be 
privileged or otherwise protected from disclosure. They are intended solely for 
the individual or entity to whom the email is addressed. However, mistakes 
sometimes happen in addressing emails. If you believe that you are not an 
intended recipient, please stop reading immediately. Do not copy, forward, or 
rely on the contents in any way. Notify the sender and/or Imperva, Inc. by 
telephone at +1 (650) 832-6006 and then delete or destroy any copy of this 
email and its attachments. The sender reserves and asserts all rights to 
confidentiality, as well as any privileges that may apply. Any disclosure, 
copying, distribution or action taken or omitted to be taken by an unintended 
recipient in reliance on this message is prohibited and may be unlawful.
Please consider the environment before printing this email.

Reply via email to