-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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-2145: Add a log config so users can define topic owners. #77
Conversation
@junrao Please review and I would recommend not to merge this until KAFKA-2210 is merged in at which point we should be able to leverage KafkaPrincipal instance as owner field. |
de9c4ef
to
d88fc86
Compare
@ijuma I am not sure why our comments disappeared. I have removed the return statements and test still passes. |
@Parth-Brahmbhatt If a commit changes and the branch is force pushed, the comments can disappear. Thanks for making the change. |
kafka-trunk-git-pr #218 SUCCESS |
//by default we make user that issues topic creation as the owner. | ||
if (!config.containsKey(LogConfig.OwnersProp)) { | ||
config.put(LogConfig.OwnersProp, System.getProperty("user.name")) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if we should get this from the user.name system property. Would it be better to just use the default owner if it's not specified explicitly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I preferred this way as we can establish some sort of true identity rather than complete anonymity. Once we have sasl support we can actually derive identities based on who the logged in sasl user is instead of asking the user to pass this as an argument or reliying on System.getProperty("user.name"). can you elaborate why it is better to just leave it as anonymous.
…into KAFKA-2145
55adbbe
to
ad2ac06
Compare
kafka-trunk-git-pr #432 FAILURE |
@junrao I have made changes so this PR now users KafkaPrincipal. One open issue is how to handle multiple owners. I originally tested by using , as separator in the test. However I realized this won't work from CLI as CLI already uses , to distinguish different keys e.g. bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic owner-test-config-3 --partitions 1 --config owners=User:alice,flush.ms=10000 will work as we are only specifying one owner. However bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic owner-test-config-3 --partitions 1 --config owners=User:alice,User:Bob,flush.ms=10000 will not work as CLI will try to match User:Bob as Key=Val and fail with "all configs to be added must be in the format "key=val"" Exception. We could either use some different delimiter or just add --owner as a new option. Please let me know which option makes more sense to you or if you have an alternative approach. |
ASFBOT reported a transient unit test failure kafka.consumer.MetricsTest > testMetricsLeak FAILED unrelated to this change |
@junrao Could you take another look at this PR and see if it is still valid? If yes @Parth-Brahmbhatt could rebase the PR and continue addressing your comments. |
Refer to this link for build results (access rights to CI server needed): |
Refer to this link for build results (access rights to CI server needed): |
Refer to this link for build results (access rights to CI server needed): |
|
…: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 ...
…elds (apache#77) TICKET = LI_DESCERIPTION = committing to our fork until upstream picks this up EXIT_CRITERIA = when KAFKA-9855 is accepted upstream (specifically - apache#8472) Signed-off-by: radai-rosenblatt <radai.rosenblatt@gmail.com>
…elds (apache#77) TICKET = LI_DESCERIPTION = committing to our fork until upstream picks this up EXIT_CRITERIA = when KAFKA-9855 is accepted upstream (specifically - apache#8472) Signed-off-by: radai-rosenblatt <radai.rosenblatt@gmail.com>
`PartitionRegistration.hashCode` passes raw arrays to `Objects.hash` in the `hashCode` implementation. This doesn't work since the `equals` implementation uses `Arrays.equals`. We should use `Arrays.hashCode` instead. Reviewers: David Arthur <mumrah@gmail.com> Co-authored-by: Jason Gustafson <jason@confluent.io>
No description provided.