[ 
https://issues.apache.org/jira/browse/KAFKA-18856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17929949#comment-17929949
 ] 
Chia-Ping Tsai commented on KAFKA-18856:
----------------------------------------

there are "two" kinds of unsupported version errors.

*case 0: the MV used by the cluster is not serializable to the old 
controller/broker. for example: 4.0-IV2 controller + 3.9 broker*

in this case, the error message is readable as it shows the unsupported feature 
level directly. for example: "No MetadataVersion with feature level 24"

{*}case 1: the MV used by the old broker/controller is NOT acceptable by the 
cluster{*}{*}. for example: 4.0-IV1 controller + 3.9 broker{*}{*}{*}

the old broker succeeds to reply the feature record and then send broker 
registration to controller, but the response carries only the error code. 
Hence, the error message shown by old broker is "Unable to register broker 
10729 because the controller returned error UNSUPPORTED_VERSION".  In this 
case, the log message is a bit unclear. 

*my two cents*

Maybe we can add `ErrorMessage` field to `BrokerRegistrationResponse` to bring 
more useful information from controller.

 

> 3.9 broker unable to join dynamic quorum with 4.0 controller
> ------------------------------------------------------------
>
>                 Key: KAFKA-18856
>                 URL: https://issues.apache.org/jira/browse/KAFKA-18856
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: TengYao Chi
>            Assignee: TengYao Chi
>            Priority: Major
>
> Test step:
>  * format 4.0 controller /w controller.properties & standalone
>  ** bin/kafka-storage.sh format --standalone -t "dAtBluZORiuJEKV2uSWB2Q" -c 
> config/controller.properties
>  * start 4.0 controller
>  * init 3.9 broker /w kraft/broker.properties & no-initial-controllers 
>  ** bin/kafka-storage.sh format -t "dAtBluZORiuJEKV2uSWB2Q" --config 
> config/kraft/broker.properties -N
>  * start 3.9 broker
> error message:
> {code:java}
> [2025-02-24 23:13:21,271] ERROR Encountered metadata loading fault: Unhandled 
> error initializing new publishers 
> (org.apache.kafka.server.fault.LoggingFaultHandler)
> org.apache.kafka.image.writer.UnwritableMetadataException: Metadata has been 
> lost because the following could not be represented in metadata.version 
> 3.0-IV1: feature flag(s): group.version, transaction.version
>     at 
> org.apache.kafka.image.writer.ImageWriterOptions.handleLoss(ImageWriterOptions.java:94)
>     at 
> org.apache.kafka.image.FeaturesImage.handleFeatureLevelNotSupported(FeaturesImage.java:108)
>     at org.apache.kafka.image.FeaturesImage.write(FeaturesImage.java:88)
>     at org.apache.kafka.image.MetadataImage.write(MetadataImage.java:153)
>     at 
> org.apache.kafka.image.loader.MetadataLoader.initializeNewPublishers(MetadataLoader.java:296)
>     at 
> org.apache.kafka.image.loader.MetadataLoader.lambda$scheduleInitializeNewPublishers$0(MetadataLoader.java:267)
>     at 
> org.apache.kafka.queue.KafkaEventQueue$EventContext.run(KafkaEventQueue.java:132)
>     at 
> org.apache.kafka.queue.KafkaEventQueue$EventHandler.handleEvents(KafkaEventQueue.java:215)
>     at 
> org.apache.kafka.queue.KafkaEventQueue$EventHandler.run(KafkaEventQueue.java:186)
>     at java.base/java.lang.Thread.run(Thread.java:1583)
> ^C[2025-02-24 23:13:21,658] INFO Terminating process due to signal SIGINT 
> (org.apache.kafka.common.utils.LoggingSignalHandler)
> [2025-02-24 23:13:21,660] INFO App info kafka.server for 2 unregistered 
> (org.apache.kafka.common.utils.AppInfoParser) {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to