-
Notifications
You must be signed in to change notification settings - Fork 5.5k
fix memory leak in utils/jinja.py #62007
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
Conversation
The `SaltCacheLoader` class was leaking through an external module `atexit`. `atexit.register` has an internal list where it adds finalizers at each call, `LazyLoader` at each re-import of jinja modules, imported into them `utils/jinja.py ` and thereby called `atexit.register'. Since `atexit` is executed at the end of the process life, it is better to let the operating system terminate all connections and free up all resources.
@s0undt3ch |
Hi! I'm your friendly PR bot!You might be wondering what I'm doing commenting here on your PR. Yes, as a matter of fact, I am... I'm just here to help us improve the documentation. I can't respond to Okay... so what do you do? I detect modules that are missing docstrings or "CLI Example" on existing docstrings! So what does that have to do with my PR? I noticed that in this PR there are some files changed that have some of these Okay, what are they? Well, my favorite, is that since you were making changes here I'm hoping that If I can, then what? Well, you can either add them to this PR or add them to another PR. Either way is fine! Well... what if I can't, or don't want to? That's also fine! We appreciate all contributions to the Salt Project. If you Whatever approach you decide to take, just drop a comment here letting us know! Detected Issues (click me)Check Known Missing Docstrings...........................................Failed - hook id: invoke - duration: 1.31s - exit code: 1 Thanks again! |
The
SaltCacheLoader
class was leaking through an external moduleatexit
.atexit.register
has an internal list where it adds finalizers at each call,LazyLoader
at each re-import of jinja modules,imported into them
utils/jinja.py
and thereby calledatexit.register'. Since
atexit` is executed at the end of the process life, it is better tolet the operating system terminate all connections and free up all resources.
What does this PR do?
fix memory leak
What issues does this PR fix or reference?
Fixes:
may be #61988
Merge requirements satisfied?
[NOTICE] Bug fixes or features added to Salt require tests.
Commits signed with GPG?
Yes
Please review Salt's Contributing Guide for best practices.
See GitHub's page on GPG signing for more information about signing commits with GPG.