After loading XML state files, certain proxies may never get deleted!
After loading XML state files, certain proxies may never get deleted! While the proxies don't leak, and get cleaned up when the application quits or server disconnects, it still implies that memory won't be cleared when expected.
Steps to reproduce:
- Start ParaView (builtin)
- To keep things simple, close the current view, so you have an empty view and then create the
Sphere
source. - Don't hit Apply, just save the state as One.pvsm file at this point. Inspect the state file, at the very end, it will have something as follows:
<ProxyCollection name="pq_helper_proxies.4641">
<Item id="4652" name="RepresentationAnimationHelper"/>
</ProxyCollection>
<ProxyCollection name="sources">
<Item id="4641" name="Sphere1"/>
</ProxyCollection>
That's the Sphere source and it's helper proxy. If you look closely for the state of the helper proxy (search for the proxy using its id), you'll notice that it refers to the Sphere1
's ID as follows:
<Proxy group="misc" type="RepresentationAnimationHelper" id="4652" servers="16">
<Property name="Source" id="4652.Source" number_of_elements="1">
<Proxy value="4641"/>
</Property>
</Proxy>
-
Delete the Sphere. Save out the state file again (Two.pvsm). Now look at the state file. Both the
RepresentationAnimationHelper
and theSphere1
proxies are gone. Good! -
Restart ParaView. And load One.pvsm. Delete the
Sphere1
source and save the state file (Three.pvsm). This time, in Three.pvsm while there's noSphere1
proxy, theRepresentationAnimationHelper
is still present! If you look at it's state, you;ll see it'sSource
property is indeed hanging on to some proxy (which is actually the SphereSource proxy. The SphereSource won't be deleted until the application is quit!
This is a bug!
Another way to test this same bug is #16863 (closed)