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

prevent memory leak when using control group factors in a policy #17532

Merged
merged 2 commits into from Oct 14, 2022

Conversation

hghaf099
Copy link
Contributor

@hghaf099 hghaf099 commented Oct 13, 2022

The problem might actually be that the Policy object is cached in the policy store's LRU. Then, we are assigning existingPerms.ControlGroup = pc.Permissions.ControlGroup. This is a pointer to the policy's control group. Then on next iteration we are appending another policy's control group factors to this one, making the actual policy object in the LRU cache larger. This causes the policy in the cache to no longer match the policy on disk.

Instead of using a map and de-duplicating factors i think we want to clone the original Policy's control group so we aren't reusing the pointer and mutating cache objects. If we clone the control group then any factors that we append to it will only live for the lifetime of the request and be garbage collected afterwards. This behaves similarly to the other data structures embedded in the ACL object.

@hghaf099 hghaf099 changed the title prevent a possible memory leak when using control group factors in a … prevent memory leak when using control group factors in a policy Oct 13, 2022
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.

None yet

2 participants