kevin-wu24 opened a new pull request, #20604:
URL: https://github.com/apache/kafka/pull/20604

   ```
   commit ec37eb538b7d7e113b80e09276606395b007127e (HEAD -> 
KAFKA-19719-cherry-pick-41, origin/KAFKA-19719-cherry-pick-41)
   Author: Kevin Wu <[email protected]>
   Date:   Thu Sep 25 11:56:16 2025 -0500
   
       KAFKA-19719: --no-initial-controllers should not assume kraft.version=1 
(#20551)
       
       Just because a controller node sets --no-initial-controllers flag does
       not mean it is necessarily running kraft.version=1. The more precise
       meaning is that the controller node being formatted does not know what
       kraft version the cluster should be in, and therefore it is only safe to
       assume kraft.version=0. Only by setting
       --standalone,--initial-controllers, or --no-initial-controllers
       AND not specifying the controller.quorum.voters static config, is it
       known kraft.version > 0.
       
       For example, it is a valid configuration (although confusing) to run a
       static   quorum defined by controller.quorum.voters but have all the
       controllers   format with --no-initial-controllers. In this case,
       specifying --no-initial-controllers alongside a metadata version that
       does not  support kraft.version=1 causes formatting to fail, which is
       does not  support kraft.version=1 causes formatting to fail, which is
       a  regression.
       
       Additionally, the formatter should not check the kraft.version against
       the release version, since kraft.version does not actually depend on any
       release version. It should only check the kraft.version against the
       static voters config/format arguments.
       
       This PR also cleans up the integration test framework to match the
       semantics of formatting an actual cluster.
       
       Reviewers: TengYao Chi <[email protected]>, Kuan-Po Tseng
        <[email protected]>, Chia-Ping Tsai <[email protected]>, José
        Armando García Sancio <[email protected]>
        Conflicts:
               core/src/main/scala/kafka/tools/StorageTool.scala
                       Minor conflicts. Keep changes from cherry-pick.
               
core/src/test/java/kafka/server/ReconfigurableQuorumIntegrationTest.java
                       Remove auto-join tests, since 4.1 does not support it.
               docs/ops.html
                       Keep docs section from cherry-pick.
               
metadata/src/test/java/org/apache/kafka/metadata/storage/FormatterTest.java
                       Minor conflicts. Keep cherry-picked changes.
               
test-common/test-common-runtime/src/main/java/org/apache/kafka/common/test/KafkaClusterTestKit.java
                       Conflicts due to integration test framework changes. 
Keep new changes.
   
   commit 02d58b176c32917962ab25b6d685059179d06f26 (upstream/4.1)
   ```
   


-- 
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