# Memory leak when global project saved

**URL:** <https://forum.inductiveautomation.com/t/memory-leak-when-global-project-saved/102914>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [February 26, 2025, 3:47pm UTC](https://forum.inductiveautomation.com/t/memory-leak-when-global-project-saved/102914 "2025-02-26T15:47:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![zacht](https://avatars.discourse-cdn.com/v4/letter/z/ea5d25/32.png) [@zacht](https://forum.inductiveautomation.com/u/zacht)\
**Post date:** [February 26, 2025, 3:47pm UTC](https://forum.inductiveautomation.com/t/memory-leak-when-global-project-saved/102914/1 "2025-02-26T15:47:09Z")

</div>

There seems to be a memory leak in one of my projects. Looking at the memory trend graph from the gateway status page, the increases in the non-heap seem to correlate to when I save my "Global" scripting project. The decrease is when I restarted the gateway. The "Global" project is the root of all inheritance and the designated gateway script project (default behavior from the 7.9 -\> 8.0 conversion).

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/5/4576069058b0cdc4c88a33f01d20703e9476aa8f.png)

I assume there's something in a script library of one of the projects that is causing some memory to leak every time the script manager is restarted, and saving its parent project, "Global" is causing the restart.

Is there an easier way to look for this memory leak than opening projects individually and saving them a few times to see if that causes a similar non-heap memory increase? Is there anywhere else I should look where memory leaks are common?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 26, 2025, 3:58pm UTC](https://forum.inductiveautomation.com/t/memory-leak-when-global-project-saved/102914/2 "2025-02-26T15:58:47Z")

</div>

Look for uses of `system.util.getGlobals()` and/or `system.util.globals` anywhere. The persistent dictionary is easily abused to make memory leaks.

Also look in thread dumps for long-lived threads started with `system.util.invokeAsynchronous()`. A project save will not kill already-started threads, and those continuing threads will lock the entire old interpreter in RAM, leaking gobs of memory.

Finally, look for uses of SDK methods where jython listeners are added to platform infrastructure. Those will also attach old jython code+interpreter as a memory leak.
