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.
Remaining tasks:
Write changelog to outline the new behaviour with epochs,
and what it fixes.
Also mention the new ERR__LOG_TRUNCATION error code that will
be raised if log truncation is detected on the broker due to
unclean leader election.
Write test cases using the mock broker. This also requires
the new OffsetForLeaderEpochRequest to be added to the mock handlers.
Run the AK system tests truncation test suite to verify that the
verifiable consumer (backed by librdkafka, preferably thru the python client)
handles log truncation properly.
Talk with Jing about running on Jenkins, and/or try to get it working
with the local docker/ducker-ak based system testing.
In the latter case you will need to find a way to get the verifiable clients
on the docker images that are tested.
For high-level language bindings the following changes are needed:
and rd_kafka_topic_partition_t now respects and retains the
leader epoch: use get_leader_epoch() to retrieve and set_leader_epoch()
to set. Relevant APIs are:
offsets outside of Kafka.
were changed to take an array of field specifiers, this allows these functions
to be reused for various read/write partition array jobs even
when the field ordering differs.
However, the calling signature is variadic, which means existing code that calls
these functions will compile but not work - this has been fixed in this PR
of course, but other PRs sub-sequent to this one needs to be fixed too.