[
https://issues.apache.org/jira/browse/KAFKA-21211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
sanghyeok An updated KAFKA-21211:
---------------------------------
Component/s: group-coordinator
streams
> Server-side Streams rack-aware assignment configuration can accept tag keys
> longer than 20 characters, while the Kafka Streams client rejects such keys
> during `StreamsConfig` construction.
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: KAFKA-21211
> URL: https://issues.apache.org/jira/browse/KAFKA-21211
> Project: Kafka
> Issue Type: Bug
> Components: group-coordinator, streams
> Reporter: sanghyeok An
> Assignee: sanghyeok An
> Priority: Minor
> Labels: streams
>
> *Description*
> Server-side Streams rack-aware assignment configuration can accept tag keys
> longer than 20 characters, while the Kafka Streams client rejects such keys
> during {{StreamsConfig}} construction.
> The inconsistency affects both configuration paths:
> * Broker default: {{group.streams.rack.aware.assignment.tags}}
> * Group override: {{streams.rack.aware.assignment.tags}}
> For example, the server-side configuration accepts the following 22-character
> tag key:
>
> {{streams.rack.aware.assignment.tags=availability_zone_name}}
> However, a Streams client cannot supply the corresponding tag:
> * group.protocol=streams
> * client.tag.availability_zone_name=az-a
> {{StreamsConfig}} throws a {{ConfigException}} because the tag key exceeds
> the client-side maximum length of 20 characters.
> *Actual behavior*
> The server accepts a rack-aware assignment tag key that the official Streams
> client cannot provide. Adding the corresponding client tag prevents the
> application from starting; omitting it leaves that tag unavailable to the
> assignor.
> *Expected behavior*
> Server-side rack-aware assignment configuration should be consistent with the
> tag keys supported by the Streams client. An unsupported key should be
> rejected when the configuration is supplied, rather than accepted and
> discovered later during client startup.
> *Suggested fix*
> Validate tag key lengths during broker bootstrap and Admin API group
> configuration changes. Reject keys longer than 20 characters with a
> {{ConfigException}} during bootstrap or the corresponding configuration error
> through the Admin API. (It would be better to consider length of value - 30)
> Compatibility with previously stored configurations should be considered,
> particularly for configuration queries and metadata restoration.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)