You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Ron Dagostino (Jira)" <ji...@apache.org> on 2021/08/23 22:39:00 UTC

[jira] [Created] (KAFKA-13224) broker.id does not appear in config's originals map when setting just node.id

Ron Dagostino created KAFKA-13224:
-------------------------------------

             Summary: broker.id does not appear in config's originals map when setting just node.id
                 Key: KAFKA-13224
                 URL: https://issues.apache.org/jira/browse/KAFKA-13224
             Project: Kafka
          Issue Type: Bug
    Affects Versions: 3.0.0
            Reporter: Ron Dagostino
            Assignee: Ron Dagostino


Plugins may expect broker.id to exist as a key in the config's various originals()-related maps, but with KRaft we rely solely on node.id for the broker's ID, and with the Zk-based brokers we provide the option to specify node.id in addition to (or as a full replacement for) broker.id. 
 There are multiple problems related to this switch to node.id:

# We do not enforce consistency between explicitly-specified broker.id and node.id properties in the config -- it is entirely possible right now that we could set broker.id=0 and also set node.id=1, and the broker will use 1 for it's ID. This is confusing at best; the broker should detect this inconsistency and fail to start with a ConfigException.
# When node.id is set, both that value and any explicitly-set broker.id value will exist in the config's *originals()-related maps*. Downstream components are often configured based on these maps, and they may ask for the broker.id, so downstream components may be misconfigured if the values differ, or they may fail during configuration if no broker.id key exists in the map at all.
# The config's *values()-related maps* will contain either the explicitly-specified broker.id value or the default value of -1.  When node.id is set, both that value (which cannot be negative) and the (potentially -1) broker.id value will exist in the config's values()-related maps. Downstream components are often configured based on these maps, and they may ask for the broker.id, so downstream components may be misconfigured if the broker.id value differs from the broker's true ID.

The broker should detect inconsistency between explicitly-specified broker.id and node.id values and fail startup accordingly. It should also ensures that the config's originals()- and values()-related maps contain the same mapped values for both broker.id and node.id keys.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)