Closed
Bug 65853
Opened 24 years ago
Closed 8 years ago
nsLoadGroup::RemoveChannel called for channels not in group
Categories
(Core :: Networking, defect)
Tracking
()
RESOLVED
WONTFIX
Future
People
(Reporter: dbaron, Unassigned)
Details
(Whiteboard: [necko-backlog])
I ran into this when debugging a leak. It's not technically a bug (although it could have some performance cost), but it seems wrong to me. I discovered that there are lots of calls to nsLoadGroup::RemoveChannel for channels that aren't in the group. I never investigated why this happens, but it happens all the time when stopping page loads (hitting stop, hitting reload before a page is loaded, clicking on a link before a page is loaded; especially on pages with lots of images) or things like that. I had the following assertions in nsLoadGroup.cpp, and the third one ("channel not in group" fired all the time): Index: nsLoadGroup.cpp =================================================================== RCS file: /cvsroot/mozilla/netwerk/base/src/nsLoadGroup.cpp,v retrieving revision 1.42 diff -u -d -r1.42 nsLoadGroup.cpp --- nsLoadGroup.cpp 2000/10/26 06:34:02 1.42 +++ nsLoadGroup.cpp 2001/01/18 19:06:45 @@ -250,10 +250,12 @@ // // XXX: What should the context and error message be? // - (void)RemoveChannel(channel, nsnull, status, nsnull); + rv = RemoveChannel(channel, nsnull, status, nsnull); + NS_ASSERTION(NS_SUCCEEDED(rv), "Failure removing channel."); // Cancel the channel... rv = channel->Cancel(status); + NS_ASSERTION(NS_SUCCEEDED(rv), "Failure cancelling channel."); // Remember the first failure and return it... if (NS_FAILED(rv) && NS_SUCCEEDED(firstError)) { @@ -550,6 +552,7 @@ // XXX this method incorrectly returns a bool // rv = mChannels->RemoveElement(channel) ? NS_OK : NS_ERROR_FAILURE; + NS_ASSERTION(NS_SUCCEEDED(rv), "Channel not in group."); if (NS_FAILED(rv)) { PR_LOG(gLoadGroupLog, PR_LOG_ERROR, ("LOADGROUP [%x]: Unable to remove channel %x. Not in group!\n",
Comment 2•22 years ago
|
||
moving neeti's futured bugs for triaging.
Assignee: neeti → new-network-bugs
Comment 3•10 years ago
|
||
hey david, found this very very old bug by accident and little comments, still an issue?
Flags: needinfo?(dbaron)
Reporter | ||
Comment 4•10 years ago
|
||
No idea, though the code is still around in nsLoadGroup::RemoveRequest: if (PL_DHASH_ENTRY_IS_FREE(entry)) { LOG(("LOADGROUP [%x]: Unable to remove request %x. Not in group!\n", this, request)); return NS_ERROR_FAILURE; } so it's still certainly testable if we do this frequently.
Flags: needinfo?(dbaron)
Updated•8 years ago
|
Whiteboard: [necko-backlog]
Comment 5•8 years ago
|
||
A had a look into this: Most probable cause (and it fits to description - clicking on a link before page is loaded) is that LoadGroup gets cancelled, it removes all requests and it cancels all necko requests. When the necko requests get cancelled at the end an OnStopRequest is called which calls RemoveRequest again. I would leave this as it is for now and close the bug.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•