Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KAFKA-6581: Fix the ConsumerGroupCommand indefinite execution if one of the partition is unavailable. #4612

Open
wants to merge 1 commit into
base: 0.10.0
Choose a base branch
from

Conversation

SahilAggarwal
Copy link

  • Checks if partition available before calling consumer.position
  • Adds timeout on consumer.position() call.

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

…of the partition is unavailable.

* Checks if partition available before calling consumer.position
* Adds timeout on consumer.position() call.
@SahilAggarwal
Copy link
Author

@ijuma 0.10.0 branch doesn't seem to have jenkins.sh due to which above checks are failing. Can you please suggest what need to be done next?

consumer.seekToEnd(List(topicPartition).asJava)
val logEndOffset = consumer.position(topicPartition)
LogEndOffsetResult.LogEndOffset(logEndOffset)
zkUtils.getLeaderForPartition(topic, partition) match {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A better approach would be to use KafkaConsumer.endOffsets. Although its doc claims that it blocks indefinitely, it is in fact bound by the request timeout. I will submit a separate patch to correct this.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

KafkaConsumer in 0.10.0 doesn't have endOffsets. It was introduced from 0.10.1 i guess. 0.10.0 doesn't have request timeout too.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, that's true. Is there any particular reason you need this in 0.10.0? We are unlikely to do another bug fix release for that version. Note that it should be possible to use tools from more recent versions on an 0.10.0 broker.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We rely on this for consumer offset metrics and lose the visibility even if single partition becomes unavailable. We could but didn't want to maintain 2 versions just for this.
I see 0.10.0.2 as unreleased, no possibility there?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's very unlikely we'll release 0.10.0.2 at this point. Your next closest version is 0.11.0.2, which already has the fix that I suggested above.

@ewencp ewencp added the tools label Feb 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants