Closed Bug 73495 Opened 24 years ago Closed 24 years ago

PluginArrayImpl is leaked and causing plugin host leak

Categories

(Core :: DOM: Core & HTML, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: sean, Assigned: serhunt)

Details

(Keywords: memory-leak, regression)

Attachments

(1 file)

This just started happening within the last couple of days. calling javascript:document.plugins.length causes PluginArrayImpl to be leaked. Because it's dtor does not run the plugin host (nsPluginHostImpl) does not get destroyed and that's a problem for plugins. will attach testcase.
Keywords: mlk, regression
Attached file testcase
Av, could you have a look at this?
Assignee: jst → av
the PluginArrayImpl that is getting leaked is owned by NavigatorImpl in nsGlobalWindow.cpp. It too is leaked.
How do you check for the leak? You do know that the JS GC can and will hold on to things that are referenced from a page sometimes longer than the lifetime of the page, right? If things stay around past app shutdown then we have a real problem.
I've been setting breakpoints in NavigatorImpl::NavigatorImpl, NavigatorImpl::~NavigatorImpl, PluginArrayImpl::PluginArrayImpl, PluginArrayImpl::~PluginArrayImpl. Just starting doing nsDocument::nsDocument and nsDocument::~nsDocument and confirm that when you run the testcase we leak nsDocuments. If you start up with a blank page and then exit the ctor count matches the dtor count. Go to the testcase and that's not the case. Things living longer than a page is not the problem. I'm seeing these things never getting destroyed - and the plugin host must get shutdown properly.
Sean, Is this a dup of bug 73289?
Peter: sort of, could be, not sure - a lot seems to have changed in the last week and I'm pretty sure I was experiencing 73289 before this one. That's all I have right now to differentiate the two. I opened 73289 for the specific case of the host getting leaked during the handling of a js exception. This bug is broader and happens without the occurence of a js exception - nsPluginHostImpl, NavigatorImpl, PluginArrayImpl and nsDocument are getting leaked. The patch for bug 73289 will prevent the leak of the plugin host from holding onto plugins past shutdown - but it doesn't fix the leak of the host itself.
What is the latest on this one?
Last I checked, the testcase still showed a leak of the plugin host (the 'killing plugin host' printf has changed to 'nsPluginHostImpl dtor'). It's no longer an issue from a plugin developer's view since we've assured that the plugin host now releases plugins at xpcom shutdown regardless of whether or not the host itself is released. I've been experiencing cvs problems and can't update to see if the leak is still occurring.
no more leak as of Apr 19! closing as wfm
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: