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

Backport of prevent memory leak when using control group factors in a policy into release/1.10.x #17557

Conversation

hc-github-team-secure-vault-core
Copy link
Collaborator

Backport

This PR is auto-generated from #17532 to be assessed for backporting due to the inclusion of the label backport/1.10.x.

The below text is copied from the body of the original PR.


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.


Overview of commits

@hc-github-team-secure-vault-core hc-github-team-secure-vault-core force-pushed the backport/prevent-excessive-memory-usage-by-cgf/remotely-winning-pangolin branch from db3b600 to 4b252da Compare October 14, 2022 23:15
@hghaf099 hghaf099 enabled auto-merge (squash) October 14, 2022 23:20
@hghaf099 hghaf099 merged commit 50a9f4f into release/1.10.x Oct 14, 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