Michael Anstis created KAFKA-13482: -------------------------------------- Summary: JRE: Duplicate Key: Multiple bootstrap server URLs Key: KAFKA-13482 URL: https://issues.apache.org/jira/browse/KAFKA-13482 Project: Kafka Issue Type: Bug Components: clients Affects Versions: 2.8.1 Environment: Docker (Kafka server), Docker (client) and local client. Reporter: Michael Anstis
I am running a Kafka server in a Docker Container. It needs to listen to both the Docker "internal" network and "external" local network. Some services run in other Docker containers and need Kafka. Some services run locally, not in Docker, and need the same Kafka instance too. Configuring bootstrap servers for the single Kafka instance: {code}kafka.bootstrap.servers=PLAINTEXT://localhost:49212,OUTSIDE://kafka-WLff1:9092{code} Leads to the following stack trace: {code} 2021-11-25 16:17:10,559 ERROR [org.apa.kaf.cli.pro.int.Sender] (kafka-producer-network-thread | kafka-producer-kogito-tracing-model) [Producer clientId=kafka-producer-kogito-tracing-model] Uncaught error in kafka producer I/O thread: : java.lang.IllegalStateException: Duplicate key 0 (attempted merging values localhost:49212 (id: 0 rack: null) and kafka-WLff1:9092 (id: 0 rack: null)) at java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133) at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180) at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at org.apache.kafka.common.requests.MetadataResponse$Holder.createBrokers(MetadataResponse.java:414) at org.apache.kafka.common.requests.MetadataResponse$Holder.<init>(MetadataResponse.java:407) at org.apache.kafka.common.requests.MetadataResponse.holder(MetadataResponse.java:187) at org.apache.kafka.common.requests.MetadataResponse.topicMetadata(MetadataResponse.java:210) at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.handleSuccessfulResponse(NetworkClient.java:1086) at org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:887) at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:570) at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:327) at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:242) at java.base/java.lang.Thread.run(Thread.java:832) {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)