Skip to content

Conversation

@m1a2st
Copy link
Collaborator

@m1a2st m1a2st commented Nov 27, 2025

FYI: #20960

@github-actions github-actions bot added triage PRs from the community core Kafka Broker labels Nov 27, 2025
Copy link
Member

@chia7712 chia7712 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@m1a2st could you take a look at the failed test testInvalidIncrementalAlterConfigsResources?

@github-actions github-actions bot removed the triage PRs from the community label Nov 28, 2025
@m1a2st m1a2st changed the title KAFKA-19931 inconsistency in handling the null config value [WIP] KAFKA-19931 inconsistency in handling the null config value Nov 28, 2025
Copy link
Contributor

@junrao junrao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@m1a2st : Thanks for the PR. Left a comment.

altersByName.put(config.name, new util.AbstractMap.SimpleEntry[AlterConfigOp.OpType, String](
AlterConfigOp.OpType.forId(config.configOperation), config.value))
if (!nullUpdates.isEmpty) {
throw new InvalidRequestException("Null value not supported for : " +
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be better to just set the error response here instead of throwing?

} catch {
case t: Throwable => ApiError.fromThrowable(t)
try {
val nullUpdates = new util.ArrayList[String]()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, there are quite a few pre-processing checks in ConfigAdminManager. The doc says the following. Could we restructure the code between ConfigAdminManager and ControllerApis to (1) avoid duplicates logic in verification (2) prevent missing verification in one of the two places in the future?

        // BROKER_LOGGER requests always go to a specific, constant broker or controller node.
        //
        // BROKER resource changes for a specific (non-default) resource go to either that specific
        // node (if using bootstrap.servers), or directly to the active controller (if using
        // bootstrap.controllers)
        //
        // All other requests go to the least loaded broker (if using bootstrap.servers) or the
        // active controller (if using bootstrap.controllers)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Kafka Broker

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants