[ 
https://issues.apache.org/jira/browse/KAFKA-20322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ritika Reddy updated KAFKA-20322:
---------------------------------
    Description: 
As a part of KIP-1228 we bumped the write transaction request version. With 
this change in order for a new coordinator to send a request to an old broker, 
discover API versions needed to be set to true to avoid incompatibility. 

*ROOT CAUSE:* TransactionMarkerChannelManager creates NetworkClient with 
discoverBrokerVersions=false, which disables API version discovery. Without 
version discovery, NetworkClient blindly uses the latest API version for all 
requests. 

*IMPACT:* When a 4.2 broker is the transaction coordinator and needs to write 
markers to a 4.1 or earlier broker (partition leader), it sends 
WriteTxnMarkersRequest v2, which the older broker doesn't support, causing 
UnsupportedVersionException.

*AFFECTED CODE:* origin/trunk: 
core/src/main/scala/kafka/coordinator/transaction/TransactionMarkerChannelManager.scala

*SOLUTION:* Set version discovery flag to true in the Transaction Marker 
Channel Manager

 

  was:
*AFFECTED CODE:* origin/trunk: 
core/src/main/scala/kafka/coordinator/transaction/TransactionMarkerChannelManager.scala

*ROOT CAUSE:* TransactionMarkerChannelManager creates NetworkClient with 
discoverBrokerVersions=false, which disables API version discovery. Without 
version discovery, NetworkClient blindly uses the latest API version for all 
requests. 

*IMPACT:* When a 4.2 broker is the transaction coordinator and needs to write 
markers to a 4.1 or earlier broker (partition leader), it sends 
WriteTxnMarkersRequest v2, which the older broker doesn't support, causing 
UnsupportedVersionException.

*SOLUTION:* Set version discovery flag to true in the Transaction Marker 
Channel Manager

 


> TransactionMarkerChannelManager has discoverBrokerVersions=false causing 
> UnsupportedVersionException during rolling upgrades
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-20322
>                 URL: https://issues.apache.org/jira/browse/KAFKA-20322
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 4.2.0
>            Reporter: Ritika Reddy
>            Assignee: Ritika Reddy
>            Priority: Major
>             Fix For: 4.2.1
>
>
> As a part of KIP-1228 we bumped the write transaction request version. With 
> this change in order for a new coordinator to send a request to an old 
> broker, discover API versions needed to be set to true to avoid 
> incompatibility. 
> *ROOT CAUSE:* TransactionMarkerChannelManager creates NetworkClient with 
> discoverBrokerVersions=false, which disables API version discovery. Without 
> version discovery, NetworkClient blindly uses the latest API version for all 
> requests. 
> *IMPACT:* When a 4.2 broker is the transaction coordinator and needs to write 
> markers to a 4.1 or earlier broker (partition leader), it sends 
> WriteTxnMarkersRequest v2, which the older broker doesn't support, causing 
> UnsupportedVersionException.
> *AFFECTED CODE:* origin/trunk: 
> core/src/main/scala/kafka/coordinator/transaction/TransactionMarkerChannelManager.scala
> *SOLUTION:* Set version discovery flag to true in the Transaction Marker 
> Channel Manager
>  



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

Reply via email to