andymg3 opened a new pull request, #12145:
URL: https://github.com/apache/kafka/pull/12145

   ## JIRA
   https://issues.apache.org/jira/browse/KAFKA-13892
   
   ### Details
   In 
https://github.com/apache/kafka/blob/trunk/metadata/src/main/java/org/apache/kafka/controller/AclControlManager.java#L143
 we loop through the ACL filters and and add `RemoveAccessControlEntryRecord` 
records to the response list for each matching ACL. There's a bug where if two 
(or more) filters match the same ACL, we create two (or more) 
`RemoveAccessControlEntryRecord` records for the same ACL. This is an issue 
because upon replay we throw an exception 
(https://github.com/apache/kafka/blob/trunk/metadata/src/main/java/org/apache/kafka/controller/AclControlManager.java#L195)
 if the ACL is not in the in-memory data structures which will happen to the 
second `RemoveAccessControlEntryRecord`.
   
   I don't think we need to dedupe `List<AclDeleteResult>`. It contains a list 
of results, where each result contains the ACLs that matched the filter. It 
should be OK for the same ACL to be in multiple AclDeleteResult results because 
it really could match multiple filters.
   
   
   ### Testing
   - Added a unit test that tests the new behavior
   
   
   ### 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.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to