[ 
https://issues.apache.org/jira/browse/KAFKA-5098?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16516040#comment-16516040
 ] 

ASF GitHub Bot commented on KAFKA-5098:
---------------------------------------

ahmedha opened a new pull request #5209: KAFKA-5098: KafkaProducer.send() dose 
not block if topic name has illegal char an…
URL: https://github.com/apache/kafka/pull/5209
 
 
   …d generates InvalidTopicException
   
   *KafkaProducer.send() dose not block if topic name has illegal char
   or invalid.  The producer caches the invalid topic name to avoid
   getting metadata from broker in the future.  The call generates
   an InvalidTopicException when invalid topic name is encountered.*
   
   *Wrote a unit test that verifies the appropriate exception
   is passed to the Callback function passed to KafkaProducer.send(), 
   and the returned future has the correct exception message.*
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> KafkaProducer.send() blocks and generates TimeoutException if topic name has 
> illegal char
> -----------------------------------------------------------------------------------------
>
>                 Key: KAFKA-5098
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5098
>             Project: Kafka
>          Issue Type: Bug
>          Components: producer 
>    Affects Versions: 0.10.2.0
>         Environment: Java client running against server using 
> wurstmeister/kafka Docker image.
>            Reporter: Jeff Larsen
>            Assignee: Ahmed Al-Mehdi
>            Priority: Major
>             Fix For: 2.1.0
>
>
> The server is running with auto create enabled. If we try to publish to a 
> topic with a forward slash in the name, the call blocks and we get a 
> TimeoutException in the Callback. I would expect it to return immediately 
> with an InvalidTopicException.
> There are other blocking issues that have been reported which may be related 
> to some degree, but this particular cause seems unrelated.
> Sample code:
> {code}
> import org.apache.kafka.clients.producer.*;
> import java.util.*;
> public class KafkaProducerUnexpectedBlockingAndTimeoutException {
>   public static void main(String[] args) {
>     Properties props = new Properties();
>     props.put("bootstrap.servers", "kafka.example.com:9092");
>     props.put("key.serializer", 
> "org.apache.kafka.common.serialization.StringSerializer");
>     props.put("value.serializer", 
> "org.apache.kafka.common.serialization.StringSerializer");
>     props.put("max.block.ms", 10000); // 10 seconds should illustrate our 
> point
>     String separator = "/";
>     //String separator = "_";
>     try (Producer<String, String> producer = new KafkaProducer<>(props)) {
>       System.out.println("Calling KafkaProducer.send() at " + new Date());
>       producer.send(
>           new ProducerRecord<String, String>("abc" + separator + 
> "someStreamName",
>               "Not expecting a TimeoutException here"),
>           new Callback() {
>             @Override
>             public void onCompletion(RecordMetadata metadata, Exception e) {
>               if (e != null) {
>                 System.out.println(e.toString());
>               }
>             }
>           });
>       System.out.println("KafkaProducer.send() completed at " + new Date());
>     }
>   }
> }
> {code}
> Switching to the underscore separator in the above example works as expected.
> Mea culpa: We neglected to research allowed chars in a topic name, but the 
> TimeoutException we encountered did not help point us in the right direction.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to