chia7712 commented on PR #17576:
URL: https://github.com/apache/kafka/pull/17576#issuecomment-2471861303

   > I think the approach sounds fine, but wasn't sure if we typically updated 
ZK like this without a KIP or anything. It is also a bit odd since it will only 
be used in tests. But reading on the previous messages, it seems like this is 
the only way forward for these older versions that require ZK? If so, then it 
seems like our best bet to unblock these tests.
   
   Yes, that approach can simplify our E2E environment, as we can use `JDK 17` 
and `ZooKeeper 3.8` server to test all supported versions in E2E. Additionally, 
a KIP shouldn't be necessary, since #6802 upgraded ZooKeeper from 3.4.14 to 
3.5.5 without requiring a KIP. Importantly, what we're trying to test here 
isn't the compatibility between Kafka and ZooKeeper.
   
   > KIP-902 does have a chart in it that indicates the older kafka versions 
aren't compatible, so I think we should sort that area out before proceeding.
   
   Pardon me, are we taking about this chart?
   
   ![Screenshot From 2024-11-13 
07-02-24](https://github.com/user-attachments/assets/da5f4b0a-c6b5-48e0-a332-171371312525)
   
   If so, the chart is about which version of the ZooKeeper client is used by 
Kafka and the compatibility between the ZooKeeper client and server versions. 
Additionally, we don't test rolling upgrades from versions 2.1 to 2.3 to newer 
versions. The main concern with replacing the ZooKeeper 3.4 client JAR with the 
3.5 JAR is whether the ZooKeeper 3.5 client introduces API changes. The answer 
is yes—some APIs have been moved to `zookeeper-jute`, such as 
`org.apache.zookeeper.data`. That's why #17625 needs to manually add 
`zookeeper-jute` to make Kafka versions 2.1 to 2.3 work with the ZooKeeper 3.5 
client.
   
   The following table is the env used to running Kafka in E2E. 
   
   |version    |support  |zk client version|zk server version|java version|
   |-----------|---------|----------|------------|------------|
   | pre-2.0   | none    | n/a      | n/a        | n/a       |
   | 2.1       | zk mode | 3.5.5 (manually update)    | 3.8.4      | jdk17      
 |
   | 2.2       | zk mode | 3.5.5 (manually update)    | 3.8.4       | jdk17     
 |
   | 2.3       | zk mode | 3.5.5 (manually update)     | 3.8.4       | jdk17    
  |
   | 2.4       | zk mode | 3.5.9    | 3.8.4       | jdk17       |
   | 2.5       | zk mode | 3.5.9    | 3.8.4       | jdk17       |
   | 2.6       | zk mode | 3.5.9    | 3.8.4       | jdk17       |
   | 2.7       | zk mode | 3.5.9    | 3.8.4       | jdk17       |
   | 2.8       | zk mode | 3.5.9    | 3.8.4       | jdk17       |
   | 3.0       | kraft   | n/a      | n/a      | jdk17      |
   | 3.1       | kraft   | n/a      | n/a      | jdk17       |
   | 3.2       | kraft   | n/a      | n/a      | jdk17       |
   | 3.3       | kraft   | n/a      | n/a      | jdk17       |
   | 3.4      | kraft   | n/a      | n/a      | jdk17       |
   | 3.5      | kraft   | n/a      | n/a      | jdk17       |
   | 3.6      | kraft   | n/a      | n/a      | jdk17      |
   | 3.7       | kraft   | n/a      | n/a      | jdk17       |
   | 3.8       | kraft   | n/a      | n/a      | jdk17       |
   | 3.9       | kraft   | n/a      | n/a      | jdk17       |
   | 4.0     | kraft   | n/a      | n/a      | jdk17       |
   
   
   Note that the `ZooKeeper 3.8.4 server` can be set up using `Kafka 3.9 
release` in the E2E tests, allowing us to remove all ZooKeeper-related code 
from version 4.0 (related discussion: 
[#17768](https://github.com/apache/kafka/pull/17768#discussion_r1838559400)).
   
    


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