[ https://issues.apache.org/jira/browse/KAFKA-18543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ming-Yen Chung resolved KAFKA-18543. ------------------------------------ Reviewer: Chia-Ping Tsai Assignee: Ming-Yen Chung Resolution: Resolved > Strict validation of bootstrap.servers in Kafka Clients 3.8.x causing issues > with multiline configurations > ---------------------------------------------------------------------------------------------------------- > > Key: KAFKA-18543 > URL: https://issues.apache.org/jira/browse/KAFKA-18543 > Project: Kafka > Issue Type: Bug > Components: clients > Affects Versions: 3.8.1 > Reporter: Nadina Florea > Assignee: Ming-Yen Chung > Priority: Major > > Hello, > We encountered an issue when upgrading to *Kafka Clients 3.8.x* (from 3.7.2). > The problem occurs when the bootstrap.servers configuration is defined in > YAML files using multiline syntax (e.g., using >, or as a list of brokers). > Previously, with Kafka Clients 3.7.x, this configuration worked fine even > with newlines in the brokers’ addresses, but in Kafka Clients 3.8.x, the > validation was made stricter, resulting in the following error: > {code:java} > org.apache.kafka.common.config.ConfigException: Invalid url in > bootstrap.servers > {code} > Environment: > • Kafka Clients Version: 3.8.1 > • Apache Camel Version: 4.9.0 > • Spring Boot Version: 3.4.1 > • Java Version: 17 > We are using Apache Camel to connect to Kafka, and Camel simply passes the > Spring Boot auto-configured values (including bootstrap.servers) to Kafka. > Camel doesn’t modify the configuration itself. > Steps to Reproduce: > 1. Define bootstrap.servers in application.yaml using multiline syntax: > {code:java} > camel: > component: > kafka: > brokers: >- > broker1:9092, > broker2:9092{code} > 2. Use the following setup in logback-spring.xml to configure Kafka Appender: > {code:java} > <springProperty name="brokers" source="camel.component.kafka.brokers" /> > <appender name="KAFKA" class="ch.qos.logback.classic.net.KafkaAppender"> > <kafkaProp> > bootstrap.servers=${brokers} > </kafkaProp> > </appender>{code} > 3. Run the application. > The application fails to start with the following error: > _*org.apache.camel.RuntimeCamelException: > org.apache.kafka.common.config.ConfigException: Invalid url in > bootstrap.servers: broker2:9092*_ > > • The error occurs due to the stricter validation introduced in > KAFKA-17584., which does not allow newline characters or improperly formatted > values for bootstrap.servers. > • Previously, Kafka Clients 3.7.x seemed to accept multiline configurations > more leniently. > *Is this stricter validation behavior intentional in Kafka Clients 3.8.x, and > is it a permanent change?* > We would like to understand whether this behavior is expected or if it could > be reconsidered in future Kafka versions to support multiline configurations, > as this change has introduced compatibility issues with Camel applications. > For users using Camel with Spring Boot, this issue is particularly > problematic since the brokers’ list often appears on multiple lines in YAML > files for better readability. This could make configuration difficult to > manage if forced onto a single line. > It would be helpful if Kafka allowed multiline configuration for > bootstrap.servers to avoid forcing users to put all brokers on a single line. > > • Similar issue already reported: KAFKA-18171 > • When I updated my YAML configuration to write *bootstrap.servers on a > single line* (e.g., broker1:9092,broker2:9092), the issue was resolved. > • _Applications that use Spring Kafka directly without Camel are not affected > by this issue._ > Thank you! -- This message was sent by Atlassian Jira (v8.20.10#820010)