Nadina Florea created KAFKA-18543:
-------------------------------------
Summary: 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
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)