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