[ https://issues.apache.org/jira/browse/KAFKA-9658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17052400#comment-17052400 ]
ASF GitHub Bot commented on KAFKA-9658: --------------------------------------- apovzner commented on pull request #8232: KAFKA-9658: Fix removing user quotas URL: https://github.com/apache/kafka/pull/8232 Adding (add-config) default user, user, or <user, client-id> quota and then removing it via delete-config does not update quota bound in ClientQuotaManager.Metrics for existing users or <user,client-id>. This causes brokers to continue to throttle with the previously set quotas until brokers restart (or <user,client> stops sending traffic for sometime and sensor expires). This happens only when removing the user or user,client-id where there are no more quotas to fall back to. Common example where the issue happens: Initial no quota state --> add default user quota --> remove default user quota. The cause of the issue was `DefaultQuotaCallback.quotaLimit` was returning `null` when no default user quota set, which caused ClientQuotaManager.updateQuotaMetricConfigs` to skip updating the appropriate sensor, which left it unchanged with the previous quota. This PR changes `DefaultQuotaCallback.quotaLimit` to return unlimited (Max long) quota in this case. Added 3 unit tests that failed before the fix in the PR. ### Committer Checklist (excluded from commit message) - [ ] Verify design and implementation - [ ] Verify test coverage and CI build status - [ ] Verify documentation (including upgrade notes) ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Removing default user quota doesn't take effect until broker restart > -------------------------------------------------------------------- > > Key: KAFKA-9658 > URL: https://issues.apache.org/jira/browse/KAFKA-9658 > Project: Kafka > Issue Type: Bug > Affects Versions: 2.0.1, 2.1.1, 2.2.2, 2.4.0, 2.3.1 > Reporter: Anna Povzner > Assignee: Anna Povzner > Priority: Major > > To reproduce (for any quota type: produce, consume, and request): > Example with consumer quota, assuming no user/client quotas are set initially. > 1. Set default user consumer quotas: > {{./kafka-configs.sh --zookeeper <ZK> --alter --add-config > 'consumer_byte_rate=100000000' --entity-type users --entity-default}} > {{2. Send some consume load for some user, say user1.}} > {{3. Remove default user consumer quota using:}} > {{./kafka-configs.sh --zookeeper <ZK> --alter --delete-config > 'consumer_byte_rate' --entity-type users --entity-default}} > Result: --describe (as below) returns correct result that there is no quota, > but quota bound in ClientQuotaManager.metrics does not get updated for users > that were sending load, which causes the broker to continue throttling > requests with the previously set quota. > {{/opt/confluent/bin/kafka-configs.sh --zookeeper <ZK> --describe > --entity-type users --entity-default}} > {{}}{{}} -- This message was sent by Atlassian Jira (v8.3.4#803005)