Hello,
we've encountered a problem in our tool that eventually causes a GC Overhead / out of memory error:
We import structures called "FormalRequirements" that in turn contain entities called "NormalizedAccessPathImpl" (and InterfaceObjects). Each FormalRequirement is imported in its own transaction and the transactional context is being closed after the FormalRequirement is imported. However, we can see that over time more and more NormalizedAccessPaths clog up the RAM and won't be released.
Below is the reference graph for them. Normally we would expect to see some service or helper class which accidentally holds references to those. But here we have only WeakReference ObjectDB stuff, DetachedTracker ObjectDB stuff, and more NormalizedAccessPaths or InterfaceObjects (which just seems to be go in circles).
We have tried to use the "purge" flag from https://www.objectdb.com/issue/2302, but without any improvement.
Do you have any ideas or insights, why the Garbage Collector won't be able to remove these objects?
Thanks,
Toby