EDS live queries leak
August 6, 2008
I wanted to take closer look on the memory consumption of “browsing-through-the-calendar” operation. As I have probably found a bug, I will post about this later.
The bug: when one clicks on the clock applet, live query, that watches the actual month is generated (and calendar window appears). Another click on the clock applet (to hide the calendar window) – live query IS NOT destroyed (ECalViewListener object is destroyed, but EDataCalView object is not destroyed). Next click on the calendar window - the same live query is generated again (new calendar client was created).
Here is the picture documenting the error : As I was clicking on the clock applet (almost every second), the number of live queries was increasing and they were not destroyed.
To reproduce the bug:
- export ORBIT2_DEBUG_STRMAX=1000
- export ORBIT2_DEBUG=traces
- Click on the clock applet a few times. Watch, that the same live queries are generated.
- Open Evolution and create some event in actual month.
- Watch CORBA communication – every live queries will be informed, that new object was created by notifyObjectsAdded method
As it seems to me, we are destroying live queries only when orbit connection is disconnected. However, there are so many listeners and views, that I am little bit confused, still.
