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]

Reply via email to