crash in HttpChannelParentListener::AsyncOnChannelRedirect with abort message: "Channel got a redirect response, but doesn't implement nsIParentRedirectingChannel to handle it"

RESOLVED FIXED in Firefox 48



6 years ago
3 years ago


(Reporter: scoobidiver, Assigned: mayhemer)


({crash, regression})

25 Branch

Firefox Tracking Flags

(firefox24 unaffected, firefox25 affected, firefox26 affected, firefox48 fixed)


(Whiteboard: [necko-active], crash signature)


(1 attachment)

It first showed up in 25.0a1/20130724. The regression range is:
It might be a regression from bug 884061.

Signature 	mozalloc_abort(char const* const) | NS_DebugBreak | mozilla::net::HttpChannelParentListener::AsyncOnChannelRedirect(nsIChannel*, nsIChannel*, unsigned int, nsIAsyncVerifyRedirectCallback*) More Reports Search
UUID 	515fe2dc-8e5e-461a-bcdc-eee152130811
Date Processed	2013-08-11 05:36:06.318814
Uptime	20777
Last Crash	4774623 seconds before submission
Install Age 	20777 since version was first installed.
Install Time 	2013-08-10 23:49:14
Product 	Firefox
Version 	26.0a1
Build ID 	20130810030206
Release Channel 	nightly
OS 	Windows NT
OS Version 	6.1.7601 Service Pack 1
Build Architecture 	x86
Build Architecture Info 	GenuineIntel family 6 model 37 stepping 5 | 4
Crash Address 	0x6e8511cd
App Notes 	
AdapterVendorID: 0x8086, AdapterDeviceID: 0x0046, AdapterSubsysID: 14c21043, AdapterDriverVersion:
Has dual GPUs. GPU #2: AdapterVendorID2: 0x10de, AdapterDeviceID2: 0x0a70, AdapterSubsysID2: 14c21043, AdapterDriverVersion2: D2D+ DWrite? DWrite+ D3D10 Layers? D3D10 Layers+ xpcom_runtime_abort([Parent 2500] ###!!! ABORT: Channel got a redirect response, but doesn't implement nsIParentRedirectingChannel to handle it.: file e:/builds/moz2_slave/m-cen-w32-ntly-000000000000000/build/netwerk/protocol/http/HttpChannelParentListener.cpp, line 155)

Frame 	Module 	Signature 	Source
0 	mozalloc.dll 	mozalloc_abort(char const * const) 	memory/mozalloc/mozalloc_abort.cpp
1 	xul.dll 	NS_DebugBreak 	xpcom/base/nsDebugImpl.cpp
2 	xul.dll 	mozilla::net::HttpChannelParentListener::AsyncOnChannelRedirect(nsIChannel *,nsIChannel *,unsigned int,nsIAsyncVerifyRedirectCallback *) 	netwerk/protocol/http/HttpChannelParentListener.cpp
3 	xul.dll 	NS_InvokeByIndex 	xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp
4 	xul.dll 	XPC_WN_CallMethod(JSContext *,unsigned int,JS::Value *) 	js/xpconnect/src/XPCWrappedNativeJSOps.cpp
5 	mozjs.dll 	js::Invoke(JSContext *,JS::CallArgs,js::MaybeConstruct) 	js/src/vm/Interpreter.cpp
6 	mozjs.dll 	Interpret 	js/src/vm/Interpreter.cpp
7 	mozjs.dll 	js::RunScript(JSContext *,js::RunState &) 	js/src/vm/Interpreter.cpp
8 	mozjs.dll 	js::Invoke(JSContext *,JS::Value const &,JS::Value const &,unsigned int,JS::Value *,JS::MutableHandle<JS::Value>) 	js/src/vm/Interpreter.cpp
9 	mozjs.dll 	JS_CallFunctionValue(JSContext *,JSObject *,JS::Value,unsigned int,JS::Value *,JS::Value *) 	js/src/jsapi.cpp
10 	xul.dll 	nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS *,unsigned short,XPTMethodDescriptor const *,nsXPTCMiniVariant *) 	js/xpconnect/src/XPCWrappedJSClass.cpp
11 	user32.dll 	UserCallWinProcCheckWow 	
12 	xul.dll 	nsXPCWrappedJS::CallMethod(unsigned short,XPTMethodDescriptor const *,nsXPTCMiniVariant *) 	js/xpconnect/src/XPCWrappedJS.cpp
13 	nss3.dll 	nss3.dll@0xa820 	
14 	xul.dll 	SharedStub 	xpcom/reflect/xptcall/src/md/win32/xptcstubs.cpp
15 	xul.dll 	mozilla::net::HttpBaseChannel::DoNotifyListener() 	netwerk/protocol/http/HttpBaseChannel.cpp
16 	xul.dll 	mozilla::net::HttpAsyncAborter<mozilla::net::nsHttpChannel>::HandleAsyncAbort() 	netwerk/protocol/http/HttpBaseChannel.h
17 	xul.dll 	mozilla::net::nsHttpChannel::HandleAsyncAbort() 	netwerk/protocol/http/nsHttpChannel.cpp
18 	xul.dll 	nsRunnableMethodImpl<void ( mozilla::dom::XULDocument::*)(void),1>::Run() 	obj-firefox/dist/include/nsThreadUtils.h
19 	xul.dll 	nsThread::ProcessNextEvent(bool,bool *) 	xpcom/threads/nsThread.cpp
20 	xul.dll 	NS_ProcessNextEvent(nsIThread *,bool) 	obj-firefox/xpcom/build/nsThreadUtils.cpp
21 	xul.dll 	mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) 	ipc/glue/MessagePump.cpp
22 	xul.dll 	MessageLoop::RunHandler() 	ipc/chromium/src/base/
23 	xul.dll 	MessageLoop::Run() 	ipc/chromium/src/base/
24 	xul.dll 	nsBaseAppShell::Run() 	widget/xpwidgets/nsBaseAppShell.cpp
25 	xul.dll 	nsAppShell::Run() 	widget/windows/nsAppShell.cpp
26 	xul.dll 	nsAppStartup::Run() 	toolkit/components/startup/nsAppStartup.cpp
27 	xul.dll 	XREMain::XRE_mainRun() 	toolkit/xre/nsAppRunner.cpp
28 	xul.dll 	XREMain::XRE_main(int,char * * const,nsXREAppData const *) 	toolkit/xre/nsAppRunner.cpp
29 	xul.dll 	XRE_main 	toolkit/xre/nsAppRunner.cpp

More reports at:*+const%29+|+NS_DebugBreak+|+mozilla%3A%3Anet%3A%3AHttpChannelParentListener%3A%3AAsyncOnChannelRedirect%28nsIChannel*%2C+nsIChannel*%2C+unsigned+int%2C+nsIAsyncVerifyRedirectCallback*%29*%29+|+NS_DebugBreak+|+mozilla%3A%3Anet%3A%3AHttpChannelParentListener%3A%3AAsyncOnChannelRedirect%28nsIChannel*%2C+nsIChannel*%2C+unsigned+int%2C+nsIAsyncVerifyRedirectCallback*%29*+const%29+|+NS_DebugBreak
(In reply to Scoobidiver from comment #0)
> It first showed up in 25.0a1/20130724. The regression range is:
> pushloghtml?fromchange=5ceea82a79c7&tochange=2983ca6d4d1a
> It might be a regression from bug 884061.

I have been CC'd on several of this kinds of bugs on the suspicion that they are regressions from bug 884061. So far, none of them appear to be regressions caused by the atomic changes. Also in present in this range is bug 870100, which first enabled content processes in desktop Firefox builds. For many of the crashes for which you have blamed bug 884061, bug 870100 seems like a much more fruitful investigation for cause.
Keywords: needURLs
I think this correlates to 73a6fe31-595d-460b-a920-fcc0f8843232 extension which is NoScript.

I'll take a look and try to reproduce.
Assignee: nobody → honzab.moz
Assignee: honzab.moz → nobody
Is this happening in optimized (non-debug) builds?  If so, we should remove that assert, since we handle the case of missing channel well in patch for bug 904571.
See Also: → 904571
getting this same bug on Firefox 27 on Ubuntustudio 13.10 (64 bit)

crash message from startxfce4.log

[Parent 11837] ###!!! ABORT: Channel got a redirect response, but doesn't implement nsIParentRedirectingChannel to handle it.: file /build/buildd/firefox-27.0+build1/netwerk/protocol/http/HttpChannelParentListener.cpp, line 142

This has happened twice so far since Firefox was updated to 27.0 on 13/02/2014
Crash Signature: , nsIAsyncVerifyRedirectCallback*) ] [@ mozalloc_abort(char const* const) | NS_DebugBreak] → , nsIAsyncVerifyRedirectCallback*) ] [@ mozalloc_abort(char const* const) | NS_DebugBreak] [@ mozalloc_abort | NS_DebugBreak | mozilla::net::HttpChannelParentListener::AsyncOnChannelRedirect ] [@ mozalloc_abort | NS_DebugBreak]
[@ mozalloc_abort(char const* const) | NS_DebugBreak | mozilla::net::HttpChannelParentListener::AsyncOnChannelRedirect(nsIChannel*, nsIChannel*, unsigned int, nsIAsyncVerifyRedirectCallback*) ] crashes appear to still be happening with current builds, but it seems unlikely we're going to find a useful regression range without good STR so removing the flag for now.
Dragana, could your secwrapper work potentially fix this crash?
Flags: needinfo?(dd.mozilla)
Whiteboard: [necko-backlog]
I personally vote for removing this NS_RUNTIMEABORT and rather just veto the redirect, we cannot do much more.  Any more universal support for nsIParentRedirectingChannel implementation might happen to be added in bug 590682.
Assignee: nobody → honzab.moz
Flags: needinfo?(dd.mozilla)
Whiteboard: [necko-backlog] → [necko-active]
Posted patch v1Splinter Review
Jason, this is a super simple patch, tho low priority.  Feel free to review whenever you feel for it.
Attachment #8738664 - Flags: review?(jduell.mcbugs)
Attachment #8738664 - Flags: review?(jduell.mcbugs) → review+
Keywords: checkin-needed
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
You need to log in before you can comment on or make changes to this bug.