Closed Bug 791531 Opened 13 years ago Closed 13 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)

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+
Status: NEW → RESOLVED
Closed: 13 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.

Attachment

General

Created:
Updated:
Size: