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-7082: Concurrent create topics may throw NodeExistsException #5259

Merged
merged 2 commits into from
Jun 21, 2018

Conversation

ijuma
Copy link
Contributor

@ijuma ijuma commented Jun 20, 2018

This is an unexpected exception so UnknownServerException
is thrown back to the client.

This is a minimal change to make the behaviour match ZkUtils.
This is better, but one could argue that it's not perfect. A more
sophisticated approach can be tackled separately.

Added a concurrent test that fails without this change.

Committer Checklist (excluded from commit message)

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

Without this change, we can throw a `NodeExistsException`. This
minimal change makes the behaviour match `ZkUtils`.

Added a concurrent test that failed without this change.
@ijuma ijuma changed the title Fix regression when creating topics concurrently KAFKA-7082: Concurrent create topics may throw NodeExistsException Jun 20, 2018
@ijuma ijuma requested a review from junrao June 20, 2018 20:36
@omkreddy
Copy link
Contributor

LGTM

@ijuma
Copy link
Contributor Author

ijuma commented Jun 21, 2018

JDK 10 Jenkins job passed, the 2 failures in the JDK 8 job are unrelated.

Copy link
Contributor

@junrao junrao left a comment

Choose a reason for hiding this comment

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

@ijuma : Thanks for the patch. LGTM

@ijuma ijuma merged commit e33ccb6 into apache:trunk Jun 21, 2018
ijuma added a commit that referenced this pull request Jun 21, 2018
…5259)

This is an unexpected exception so `UnknownServerException`
is thrown back to the client.

This is a minimal change to make the behaviour match `ZkUtils`.
This is better, but one could argue that it's not perfect. A more
sophisticated approach can be tackled separately.

Added a concurrent test that fails without this change.

Reviewers: Jun Rao <junrao@gmail.com>
@ijuma
Copy link
Contributor Author

ijuma commented Jun 21, 2018

Merged to trunk, 2.0 and 1.1.

ijuma added a commit that referenced this pull request Jun 21, 2018
…5259)

This is an unexpected exception so `UnknownServerException`
is thrown back to the client.

This is a minimal change to make the behaviour match `ZkUtils`.
This is better, but one could argue that it's not perfect. A more
sophisticated approach can be tackled separately.

Added a concurrent test that fails without this change.

Reviewers: Jun Rao <junrao@gmail.com>
@ijuma ijuma deleted the concurrent-topic-creation-fix branch June 21, 2018 23:49
val path = ConfigEntityZNode.path(rootEntityType, sanitizedEntityName)
createRecursive(path, ConfigEntityZNode.encode(config))
try createRecursive(path, ConfigEntityZNode.encode(config))
Copy link
Contributor

Choose a reason for hiding this comment

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

The second parameter can be replaced with configData, right ?

ying-zheng pushed a commit to ying-zheng/kafka that referenced this pull request Jul 6, 2018
…pache#5259)

This is an unexpected exception so `UnknownServerException`
is thrown back to the client.

This is a minimal change to make the behaviour match `ZkUtils`.
This is better, but one could argue that it's not perfect. A more
sophisticated approach can be tackled separately.

Added a concurrent test that fails without this change.

Reviewers: Jun Rao <junrao@gmail.com>
allenxwang pushed a commit to allenxwang/kafka that referenced this pull request Aug 24, 2018
…:1.1.1-sync to 1.1-nflx

* commit '9611672e287c1a7933a78590e3f381da2ae7d136': (57 commits)
  MINOR: increase dev version from 1.1.1-SNAPSHOT to 1.1.2-SNAPSHOT (apache#5409)
  MINOR: Add thread dumps if broker node cannot be stopped (apache#5373)
  MINOR: update release.py
  MINOR: fix upgrade docs for Streams (apache#5392)
  MINOR: improve docs version numbers (apache#5372)
  Update version on the branch to 1.1.2-SNAPSHOT
  KAFKA-6292; Improve FileLogInputStream batch position checks to avoid type overflow (apache#4928)
  HOTFIX: Fix checkstyle errors in MetricsTest (apache#5345)
  KAFKA-7136: Avoid deadlocks in synchronized metrics reporters (apache#5341)
  MINOR: Close timing window in SimpleAclAuthorizer startup (apache#5318)
  MINOR: Use kill_java_processes when killing ConsoleConsumer in system tests (apache#5297)
  KAFKA-7104: More consistent leader's state in fetch response (apache#5305)
  Revert "MINOR: Avoid coarse lock in Pool#getAndMaybePut (apache#5258)"
  MINOR: Avoid coarse lock in Pool#getAndMaybePut (apache#5258)
  MINOR: bugfix streams total metrics (apache#5277)
  KAFKA-7082: Concurrent create topics may throw NodeExistsException (apache#5259)
  MINOR: Upgrade to Gradle 4.8.1
  KAFKA-7012: Don't process SSL channels without data to process (apache#5237)
  KAFKA-7058: Comparing schema default values using Objects#deepEquals()
  KAFKA-7047: Added SimpleHeaderConverter to plugin isolation whitelist
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants