Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In order to reproduce the issue, this PR bumps the java driver used in integration tests from 3.7 to 3.8.
j4rs does not appear to support multiple versions of dependencies, so I think the best way to get coverage across different protocol versions is to use the java driver (well maintained and kept up to date with the latest kafka protocol) as the upper bound and the cpp driver as the lower bound (basic maintenance and uses far older versions of the kafka protocol)
The cause of the failures on 3.8 is that the driver is now sending out DescribeCluster requests which shotover does not yet support.
So this PR implements support for the DescribeCluster message type.
The implementation is very similar to the Metadata request. In fact the functionality provided by DescribeCluster is just a subset of that in Metadata. (The remaining functionality was split off into DescribeTopicPartitions)
Since they are so similar I was able to share some of the logic between both DescribeCluster and Metadata by adding a
rewrite_controller_id
method to handle the controller_id field rewriting.