Closed Bug 791531 Opened 7 years ago Closed 7 years ago

crash in nsStreamListenerWrapper::Release with abort message: "Main-thread-only object used off the main thread: file e:/builds/moz2_slave/m-cen-w32-ntly/build/xpcom/base/nsCycleCollector.cpp, line 1148"

Categories

(Core :: Networking, defect, critical)

18 Branch
All
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla18

People

(Reporter: scoobidiver, Assigned: mcmanus)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

It first appeared in 18.0a1/20120915. The regression range is:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e5af3d785252&tochange=9fff2012b66c
It's likely a regression from bug 769764.

Signature 	mozalloc_abort(char const* const) | NS_DebugBreak_P | nsCycleCollector::Suspect2(void*, nsCycleCollectionParticipant*) More Reports Search
UUID	6d86c90d-35f3-4aca-8ce7-8bf3d2120916
Date Processed	2012-09-16 03:54:36
Uptime	350
Install Age	5.8 minutes since version was first installed.
Install Time	2012-09-16 03:30:35
Product	Firefox
Version	18.0a1
Build ID	20120915030531
Release Channel	nightly
OS	Windows NT
OS Version	5.1.2600 Service Pack 3
Build Architecture	x86
Build Architecture Info	GenuineIntel family 15 model 2 stepping 9
Crash Reason	EXCEPTION_BREAKPOINT
Crash Address	0xfa1999
App Notes 	
AdapterVendorID: 0x8086, AdapterDeviceID: 0x2562, AdapterSubsysID: 25628086, AdapterDriverVersion: 6.14.10.3889
D3D10 Layers? D3D10 Layers- D3D9 Layers? D3D9 Layers- xpcom_runtime_abort(###!!! ABORT: Main-thread-only object used off the main thread: file e:/builds/moz2_slave/m-cen-w32-ntly/build/xpcom/base/nsCycleCollector.cpp, line 1148)
EMCheckCompatibility	True
Adapter Vendor ID	0x8086
Adapter Device ID	0x2562
Total Virtual Memory	2147352576
Available Virtual Memory	1903607808
System Memory Use Percentage	58
Available Page File	3329892352
Available Physical Memory	216948736

Frame 	Module 	Signature 	Source
0 	mozalloc.dll 	mozalloc_abort 	memory/mozalloc/mozalloc_abort.cpp:23
1 	xul.dll 	NS_DebugBreak_P 	xpcom/base/nsDebugImpl.cpp:410
2 	xul.dll 	nsCycleCollector::Suspect2 	xpcom/base/nsCycleCollector.cpp:2437
3 	xul.dll 	nsXMLHttpRequest::Release 	content/base/src/nsXMLHttpRequest.cpp:595
4 	xul.dll 	nsRefPtr<nsIDOMEventListener>::~nsRefPtr<nsIDOMEventListener> 	obj-firefox/dist/include/nsAutoPtr.h:874
5 	xul.dll 	nsStreamListenerWrapper::Release 	netwerk/base/src/nsStreamListenerWrapper.cpp:9
6 	xul.dll 	nsCOMPtr_base::assign_assuming_AddRef 	obj-firefox/dist/include/nsCOMPtr.h:440
7 	xul.dll 	nsCOMPtr_base::assign_with_AddRef 	obj-firefox/xpcom/build/nsCOMPtr.cpp:49
8 	xul.dll 	mozilla::net::HttpBaseChannel::DoNotifyListener 	netwerk/protocol/http/HttpBaseChannel.cpp:1426
9 	xul.dll 	mozilla::net::nsHttpChannel::OnProxyAvailable 	netwerk/protocol/http/nsHttpChannel.cpp:4521
10 	xul.dll 	nsAsyncResolveRequest::DoCallback 	netwerk/base/src/nsProtocolProxyService.cpp:230
11 	xul.dll 	nsAsyncResolveRequest::OnQueryComplete 	netwerk/base/src/nsProtocolProxyService.cpp:185
12 	xul.dll 	ExecuteCallback::Run 	netwerk/base/src/nsPACMan.cpp:73
13 	xul.dll 	PendingPACQuery::Complete 	netwerk/base/src/nsPACMan.cpp:225
14 	xul.dll 	nsPACMan::PostQuery 	netwerk/base/src/nsPACMan.cpp:327
15 	xul.dll 	nsThread::ProcessNextEvent 	xpcom/threads/nsThread.cpp:624
16 	xul.dll 	nsThread::ThreadFunc 	xpcom/threads/nsThread.cpp:257
17 	nspr4.dll 	_PR_NativeRunThread 	nsprpub/pr/src/threads/combined/pruthr.c:395
18 	nspr4.dll 	pr_root 	nsprpub/pr/src/md/windows/w95thred.c:90
19 	msvcr100.dll 	_callthreadstartex 	f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c:314
20 	msvcr100.dll 	_threadstartex 	f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c:292
21 	kernel32.dll 	BaseThreadStart

More reports at:
https://crash-stats.mozilla.com/report/list?signature=mozalloc_abort%28char+const*+const%29+|+NS_DebugBreak_P+|+nsCycleCollector%3A%3ASuspect2%28void*%2C+nsCycleCollectionParticipant*%29
https://crash-stats.mozilla.com/report/list?signature=mozalloc_abort%28char+const*+const%29+|+NS_DebugBreak_P+|+mozilla%3A%3Adom%3A%3AFragmentOrElement%3A%3ARelease%28%29
Looks like the call to OnProxyAvailable needs to be placed in a runnable that is dispatched to the main thread (if DoCallback isn't already running on the main thread, that is).
(In reply to Josh Matthews [:jdm] from comment #1)
> Looks like the call to OnProxyAvailable needs to be placed in a runnable
> that is dispatched to the main thread (if DoCallback isn't already running
> on the main thread, that is).

that mechanism exists, its just conditional for it is set the wrong way for this path. I think - line 217. I'll try to put together a patch in a bit.
Crash Signature: [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | nsCycleCollector::Suspect2(void*, nsCycleCollectionParticipant*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | mozilla::dom::FragmentOrElement::Release()] → [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | nsCycleCollector::Suspect2(void* nsCycleCollectionParticipant*)] [@ mozalloc_abort(char const* const) | NS_DebugBreak_P | mozilla::dom::FragmentOrElement::Release()] [@ mozalloc_abort(char const* …
Hardware: x86 → All
Attached patch patch 0Splinter Review
Assignee: nobody → mcmanus
Attachment #662997 - Flags: review?(cbiesinger)
Attachment #662997 - Flags: review?(cbiesinger) → review+
https://hg.mozilla.org/mozilla-central/rev/0129800fa8a1
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: in-testsuite?
Resolution: --- → FIXED
Target Milestone: --- → mozilla18
You need to log in before you can comment on or make changes to this bug.