Closed
Bug 15864
Opened 25 years ago
Closed 25 years ago
[MLK] selecting server causes mail data sources to leak
Categories
(MailNews Core :: Backend, defect, P3)
Tracking
(Not tracked)
VERIFIED
FIXED
M14
People
(Reporter: Bienvenu, Assigned: Bienvenu)
References
Details
Attachments
(1 file)
(deleted),
text/plain
|
Details |
If I startup and shutdown mail news w/o selecting anything, all our datasources
are freed. Similarly, if I expand a server w/o selecting it, all our datasources
are freed. But if I select a server, we leak the datasources. This is because we
leak an nsXULTreeElement, as near as I can tell. I'm still investigating, but
here's the memory leak report:
Type # created # leaked
---- --------- --------
RDF_InMemoryDataSource 17 5
RDF_RDFContainerUtilsImpl 1 1
RDF_Assertion 823 643
RDF_LiteralImpl 667 192
nsBaseWidget 39 1
I'm going to see if rerooting the tree is what's causing this, or just the act
of selecting.
DeviceContextImpl 8 1
nsWebShell 6 1
RDF_DateImpl 117 103
RDF_RDFXMLDataSourceImpl 7 2
AtomImpl 13908 180
StyleContextImpl 298 15
RDF_LocalStoreImpl 1 1
RDF_nsXULContentUtils 1 1
RDF_RDFElementImpl 690 38
RDF_nsXULAttribute 1675 107
nsMsgAccountManagerDataSource 1 1
nsMsgFolderDataSource 1 1
RDF_nsXULKeyListenerImpl 1 1
RDF_CompositeDataSourceImpl 9 1
RDF_nsRDFDOMNodeList 901 2
RDF_nsXULTreeElement 5 1
nsMsgFolder 135 135
Assignee | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Target Milestone: M14
Assignee | ||
Comment 1•25 years ago
|
||
I disabled the tree rerooting code, and we stil leak. This is good news, I
think, since it means it's most likely the tree selection code. But I've been
wrong before...
Assignee | ||
Comment 2•25 years ago
|
||
Assignee | ||
Comment 3•25 years ago
|
||
Notice that we leak a web shell in the second case.
Assignee | ||
Comment 4•25 years ago
|
||
I think the web shell leaks because the data source leaks - our datasources hold
onto a msg status feedback object, which hold onto a web shell. Perhaps this
causes some circularity in some situations. I can look at making one of these a
weak ptr, probably the web shell held onto by the msg status feedback object.
Assignee | ||
Comment 5•25 years ago
|
||
so much for that theory - making the msg status feedback not hold onto the web
shell or dom window didn't fix anything.
Assignee | ||
Comment 6•25 years ago
|
||
I've traced this down some more - we leak one nsEventStateManager, which is
holding onto some content nodes when you do a selection. These all tend to be
an RDFElementImpl, which holds onto the usual littany of suspects, composite
datasources, our datasource, etc. I believe we leak the nsEventStateManager
because we leak a web shell - this seems highly circular. Also, the
nsEventStateManager code is highly suspicious. It doesn't use nsCOMPtr's, and
often assigns to interface pointers without releasing the original value.
Comment 7•25 years ago
|
||
add joki to cc list. tom: any ideas?
Assignee | ||
Comment 8•25 years ago
|
||
OK, I was a fool to think I could fix this. I'm going to try to ameliorate the
damage done by adding a Close method to our datasources and calling it from the
RDF shutdown notification. The close method will just null out our nsCOMPtrs,
which tends to fix all the leaks caused by the ds leaks, which is something,
anyway.
Assignee | ||
Updated•25 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 9•25 years ago
|
||
I'm not seeing this leak anymore - it must have gotten fixed by someone!
Comment 10•25 years ago
|
||
ok, I'll mark verified since David B. reported the bug and is not seeing this
any longer.
Status: RESOLVED → VERIFIED
Updated•20 years ago
|
Product: MailNews → Core
Updated•16 years ago
|
Product: Core → MailNews Core
You need to log in
before you can comment on or make changes to this bug.
Description
•