harmadasg opened a new pull request, #23854: URL: https://github.com/apache/kafka/pull/23854
Dynamic thread count updates must be within [current / 2, current * 2]. On restart, the thread pools are created from the static configs, and the dynamic configs are applied by the first metadata publish. That publish folds all changes into a single update, so a sequence of valid steps such as `num.io.threads` 16 -> 8 -> 6 arrives as 16 -> 6 and is rejected. The node keeps the static thread counts. KAFKA-17431 reads the dynamic broker configs from the latest snapshot on startup, but changes committed after that snapshot still go through the first publish. My proposed fix skips the [current / 2, current * 2] bounds while the first publish applies the dynamic broker configs, on both brokers and controllers. The later updates are validated as before. Thread count configs in scope for the fix: - num.io.threads - num.network.threads - num.replica.fetchers - num.recovery.threads.per.data.dir - background.threads - log.cleaner.threads - the remote log manager thread pools - mirror.num.replica.fetchers -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
