Closed
Bug 673472
Opened 13 years ago
Closed 13 years ago
Segfault when using acceleration event handler that calls console.log
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
RESOLVED
FIXED
mozilla8
People
(Reporter: jdm, Assigned: jdm)
References
Details
(Whiteboard: [inbound])
Crash Data
Attachments
(2 files, 2 obsolete files)
161 bytes,
text/html
|
Details | |
5.45 KB,
patch
|
Details | Diff | Splinter Review |
With the attached testcase, I am able to frequently trigger a segfault. It has something to do with an nsIDOMWindow element in mWindowListeners going missing, and it always happens when I switch to a different application. GDB confirms that the nsGlobalWindow elements of mWindowListeners are fine, but the DOM window pointer is corrupt. https://crash-stats.mozilla.com/report/index/bp-db853315-1ba0-4408-ac0a-672cc2110722 http://hg.mozilla.org/mozilla-central/annotate/6df31af4cca6/dom/system/nsDeviceMotion.cpp#l229
Assignee | ||
Comment 1•13 years ago
|
||
To make this crash, I open the testcase, open a blank tab, close the testcase, then reopen the closed tab, repeating this until it crashes (usually a couple iterations).
Attachment #547746 -
Attachment is obsolete: true
Assignee | ||
Comment 2•13 years ago
|
||
(gdb) fr 1 #1 0x0000000101adc540 in nsDeviceMotion::DeviceMotionChanged (this=0x10694c010, type=0, x=-0.019999999552965164, y=0.012000000104308128, z=1.0479999780654907) at /Users/jdm/src/mozilla-central/dom/system/nsDeviceMotion.cpp:229 229 mWindowListeners[i]->GetDocument(getter_AddRefs(domdoc)); (gdb) ptarray mWindowListeners elem[0]: $1 = (class nsIDOMWindow *) 0x100181a10 elem[1]: $2 = (class nsIDOMWindow *) 0x125718040 elem[2]: $3 = (nsGlobalWindow *) 0x11cc204f0 elem[3]: $4 = (nsGlobalWindow *) 0x11cc204f0 nsTArray length = 4 nsTArray capacity = 8 Element Cannot access memory at address 0x0 (gdb) p i $5 = 1 (gdb) p $1 $6 = (class nsIDOMWindow *) 0x100181a10 (gdb) p $2 $7 = (class nsIDOMWindow *) 0x125718040 (gdb) p *$2 $8 = { <nsISupports> = { _vptr$nsISupports = 0x125710262 }, <No data fields>} (gdb) p *$1 $9 = { <nsISupports> = { _vptr$nsISupports = 0x10019bc03 }, <No data fields>} (gdb)
Assignee | ||
Comment 3•13 years ago
|
||
Attachment #547765 -
Flags: review?(doug.turner)
Comment 4•13 years ago
|
||
Comment on attachment 547765 [details] [diff] [review] Avoid adding multiple copies of device motion listeners. should NoIndex also be static? Want to add a test? otherwise looks fine.
Attachment #547765 -
Flags: review?(doug.turner) → review+
Updated•13 years ago
|
Assignee: nobody → josh
Assignee | ||
Comment 5•13 years ago
|
||
Assignee | ||
Updated•13 years ago
|
Attachment #547765 -
Attachment is obsolete: true
Assignee | ||
Comment 6•13 years ago
|
||
http://hg.mozilla.org/integration/mozilla-inbound/rev/5381d0941c10
Whiteboard: [inbound]
Comment 7•13 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/5381d0941c10
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Updated•13 years ago
|
Target Milestone: --- → mozilla8
Comment 8•13 years ago
|
||
Also see bug 675126 for fixups
Comment 9•13 years ago
|
||
FYI, there are still crashes coming in for this signature, on the same line as in comment 1. The latest one has Build ID: 20110802030845 bp-db8e07ca-7f1c-4bc2-9217-518ce2110802
Comment 10•13 years ago
|
||
I hit this on Mac OSX Desktop Nightly: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0a1) Gecko/20110731 Firefox/8.0a1 STR (not 100% reproducible): 1) Visit github 2) click on account settings > Account overview 3) went into Email Addresses, and removed an existing address 4) Hit add 5) Crash Is it the same bug? If so, i'll reopen. if not, i'll file new. https://crash-stats.mozilla.com/report/index/bp-78ea9f31-03d3-4240-8ffd-2a6032110809 Frame Module Signature [Expand] Source 0 XUL nsDeviceMotion::DeviceMotionChanged dom/system/nsDeviceMotion.cpp:236 1 XUL nsDeviceMotionSystem::UpdateHandler dom/system/cocoa/nsDeviceMotionSystem.mm:146 2 XUL nsTimerImpl::Fire xpcom/threads/nsTimerImpl.cpp:424 3 XUL nsTimerEvent::Run xpcom/threads/nsTimerImpl.cpp:520 4 XUL nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:631 5 XUL NS_ProcessNextEvent_P obj-firefox/x86_64/xpcom/build/nsThreadUtils.cpp:245 6 XUL nsXULWindow::CreateNewContentWindow xpfe/appshell/src/nsXULWindow.cpp:1808 7 XUL nsAppStartup::CreateChromeWindow2 toolkit/components/startup/nsAppStartup.cpp:497 8 XUL nsWindowWatcher::OpenWindowJSInternal embedding/components/windowwatcher/src/nsWindowWatcher.cpp:721 9 XUL nsWindowWatcher::OpenWindowJS embedding/components/windowwatcher/src/nsWindowWatcher.cpp:480 10 XUL nsGlobalWindow::OpenInternal dom/base/nsGlobalWindow.cpp:8668 11 XUL nsGlobalWindow::OpenInternal dom/base/nsGlobalWindow.cpp:8563 12 XUL nsGlobalWindow::OpenJS dom/base/nsGlobalWindow.cpp:5781 13 XUL NS_InvokeByIndex_P xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:195 14 XUL XPCWrappedNative::CallMethod js/src/xpconnect/src/xpcwrappednative.cpp:3119 15 XUL XPC_WN_CallMethod js/src/xpconnect/src/xpcwrappednativejsops.cpp:1595 16 XUL js::Invoke js/src/jscntxtinlines.h:281 17 XUL js::Interpret js/src/jsinterp.cpp:4008 18 XUL js::mjit::stubs::UncachedCallHelper js/src/methodjit/InvokeHelpers.cpp:345 19 XUL CallCompiler::update js/src/methodjit/MonoIC.cpp:964 20 XUL js::mjit::ic::Call js/src/methodjit/MonoIC.cpp:1018 21 @0x1592a4f52 22 @0x1ffffffff 23 XUL js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:686 24 XUL js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:716 25 XUL js::Interpret js/src/jsinterp.cpp:4045 26 XUL js::mjit::stubs::CompileFunction js/src/methodjit/InvokeHelpers.cpp:300 27 @0x1522baed4 28 GeForceGLDriver GeForceGLDriver@0x0 29 XUL js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:686 30 XUL js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:716 31 XUL js::RunScript js/src/jsinterp.cpp:610 32 XUL js::Invoke js/src/jsinterp.cpp:686 33 XUL js_fun_apply js/src/jsinterp.h:169 34 XUL js::Invoke js/src/jscntxtinlines.h:281 35 XUL js::Interpret js/src/jsinterp.cpp:4008 36 XUL js::mjit::stubs::UncachedCallHelper js/src/methodjit/InvokeHelpers.cpp:345 37 XUL CallCompiler::update js/src/methodjit/MonoIC.cpp:964 38 XUL js::mjit::ic::Call js/src/methodjit/MonoIC.cpp:1018 39 @0x15284806f 40 XUL js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:686 41 XUL js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:716 42 XUL js::RunScript js/src/jsinterp.cpp:610 43 XUL js::Invoke js/src/jsinterp.cpp:686 44 XUL js::ExternalInvoke js/src/jsinterp.h:169 45 XUL JS_CallFunctionValue js/src/jsapi.cpp:5085 46 XUL nsXPCWrappedJSClass::CallMethod js/src/xpconnect/src/xpcwrappedjsclass.cpp:1657 47 XUL nsXPCWrappedJS::CallMethod js/src/xpconnect/src/xpcwrappedjs.cpp:585 48 XUL PrepareAndDispatch xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_darwin.cpp:153 49 XUL XUL@0xe81b0a 50 XUL nsEventListenerManager::HandleEventSubType content/events/src/nsEventListenerManager.cpp:1080 51 XUL nsEventListenerManager::HandleEventInternal content/events/src/nsEventListenerManager.cpp:1177 52 XUL nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventListenerManager.h:155 53 XUL nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:672 54 XUL PresShell::HandleEventInternal layout/base/nsPresShell.cpp:7069 55 XUL PresShell::HandleEventWithTarget layout/base/nsPresShell.cpp:6917 56 XUL nsEventStateManager::CheckForAndDispatchClick content/events/src/nsEventStateManager.cpp:4229 57 XUL nsEventStateManager::PostHandleEvent content/events/src/nsEventStateManager.cpp:3171 58 XUL PresShell::HandleEventInternal layout/base/nsPresShell.cpp:7092 59 XUL PresShell::HandlePositionedEvent layout/base/nsPresShell.cpp:6902 60 XUL PresShell::HandleEvent layout/base/nsPresShell.cpp:6734 61 XUL nsViewManager::DispatchEvent view/src/nsViewManager.cpp:1029 62 XUL HandleEvent view/src/nsView.cpp:159 63 XUL nsChildView::DispatchEvent widget/src/cocoa/nsChildView.mm:1493 64 XUL nsChildView::DispatchWindowEvent widget/src/cocoa/nsChildView.mm:1503 65 XUL -[ChildView mouseUp:] widget/src/cocoa/nsChildView.mm:3149 66 AppKit AppKit@0x13d7ec 67 CoreFoundation CoreFoundation@0x21eca 68 CoreFoundation CoreFoundation@0x100cb 69 libSystem.B.dylib libSystem.B.dylib@0x65d3 70 CoreFoundation CoreFoundation@0x6191 71 CoreFoundation CoreFoundation@0xf876 72 CoreFoundation CoreFoundation@0x100cb 73 CoreFoundation CoreFoundation@0xf876 74 CoreFoundation CoreFoundation@0xf6ce 75 libSystem.B.dylib libSystem.B.dylib@0x6b19 76 Foundation Foundation@0x5ff3 77 libobjc.A.dylib libobjc.A.dylib@0x619f 78 XUL -[ToolbarWindow sendEvent:] widget/src/cocoa/nsCocoaWindow.mm:2363 79 AppKit AppKit@0x72ee1 80 CoreFoundation CoreFoundation@0x24228 81 AppKit AppKit@0x71904 82 AppKit AppKit@0x749ff7 83 AppKit AppKit@0x749ff7 84 AppKit AppKit@0x43f09
Comment 11•13 years ago
|
||
I hit this on Mac OSX Desktop Nightly: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0a1) Gecko/20110731 Firefox/8.0a1 STR (not 100% reproducible): 1) Visit github 2) click on account settings > Account overview 3) went into Email Addresses, and removed an existing address 4) Hit add 5) Crash! Is it the same bug? If so, i'll reopen. if not, i'll file new. https://crash-stats.mozilla.com/report/index/bp-78ea9f31-03d3-4240-8ffd-2a6032110809 Frame Module Signature [Expand] Source 0 XUL nsDeviceMotion::DeviceMotionChanged dom/system/nsDeviceMotion.cpp:236 1 XUL nsDeviceMotionSystem::UpdateHandler dom/system/cocoa/nsDeviceMotionSystem.mm:146 2 XUL nsTimerImpl::Fire xpcom/threads/nsTimerImpl.cpp:424 3 XUL nsTimerEvent::Run xpcom/threads/nsTimerImpl.cpp:520 4 XUL nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:631 5 XUL NS_ProcessNextEvent_P obj-firefox/x86_64/xpcom/build/nsThreadUtils.cpp:245 6 XUL nsXULWindow::CreateNewContentWindow xpfe/appshell/src/nsXULWindow.cpp:1808 7 XUL nsAppStartup::CreateChromeWindow2 toolkit/components/startup/nsAppStartup.cpp:497 8 XUL nsWindowWatcher::OpenWindowJSInternal embedding/components/windowwatcher/src/nsWindowWatcher.cpp:721 9 XUL nsWindowWatcher::OpenWindowJS embedding/components/windowwatcher/src/nsWindowWatcher.cpp:480 10 XUL nsGlobalWindow::OpenInternal dom/base/nsGlobalWindow.cpp:8668 11 XUL nsGlobalWindow::OpenInternal dom/base/nsGlobalWindow.cpp:8563 12 XUL nsGlobalWindow::OpenJS dom/base/nsGlobalWindow.cpp:5781 13 XUL NS_InvokeByIndex_P xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:195 14 XUL XPCWrappedNative::CallMethod js/src/xpconnect/src/xpcwrappednative.cpp:3119 15 XUL XPC_WN_CallMethod js/src/xpconnect/src/xpcwrappednativejsops.cpp:1595 16 XUL js::Invoke js/src/jscntxtinlines.h:281 17 XUL js::Interpret js/src/jsinterp.cpp:4008 18 XUL js::mjit::stubs::UncachedCallHelper js/src/methodjit/InvokeHelpers.cpp:345 19 XUL CallCompiler::update js/src/methodjit/MonoIC.cpp:964 20 XUL js::mjit::ic::Call js/src/methodjit/MonoIC.cpp:1018 21 @0x1592a4f52 22 @0x1ffffffff 23 XUL js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:686 24 XUL js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:716 25 XUL js::Interpret js/src/jsinterp.cpp:4045 26 XUL js::mjit::stubs::CompileFunction js/src/methodjit/InvokeHelpers.cpp:300 27 @0x1522baed4 28 GeForceGLDriver GeForceGLDriver@0x0 29 XUL js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:686 30 XUL js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:716 31 XUL js::RunScript js/src/jsinterp.cpp:610 32 XUL js::Invoke js/src/jsinterp.cpp:686 33 XUL js_fun_apply js/src/jsinterp.h:169 34 XUL js::Invoke js/src/jscntxtinlines.h:281 35 XUL js::Interpret js/src/jsinterp.cpp:4008 36 XUL js::mjit::stubs::UncachedCallHelper js/src/methodjit/InvokeHelpers.cpp:345 37 XUL CallCompiler::update js/src/methodjit/MonoIC.cpp:964 38 XUL js::mjit::ic::Call js/src/methodjit/MonoIC.cpp:1018 39 @0x15284806f 40 XUL js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:686 41 XUL js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:716 42 XUL js::RunScript js/src/jsinterp.cpp:610 43 XUL js::Invoke js/src/jsinterp.cpp:686 44 XUL js::ExternalInvoke js/src/jsinterp.h:169 45 XUL JS_CallFunctionValue js/src/jsapi.cpp:5085 46 XUL nsXPCWrappedJSClass::CallMethod js/src/xpconnect/src/xpcwrappedjsclass.cpp:1657 47 XUL nsXPCWrappedJS::CallMethod js/src/xpconnect/src/xpcwrappedjs.cpp:585 48 XUL PrepareAndDispatch xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_darwin.cpp:153 49 XUL XUL@0xe81b0a 50 XUL nsEventListenerManager::HandleEventSubType content/events/src/nsEventListenerManager.cpp:1080 51 XUL nsEventListenerManager::HandleEventInternal content/events/src/nsEventListenerManager.cpp:1177 52 XUL nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventListenerManager.h:155 53 XUL nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:672 54 XUL PresShell::HandleEventInternal layout/base/nsPresShell.cpp:7069 55 XUL PresShell::HandleEventWithTarget layout/base/nsPresShell.cpp:6917 56 XUL nsEventStateManager::CheckForAndDispatchClick content/events/src/nsEventStateManager.cpp:4229 57 XUL nsEventStateManager::PostHandleEvent content/events/src/nsEventStateManager.cpp:3171 58 XUL PresShell::HandleEventInternal layout/base/nsPresShell.cpp:7092 59 XUL PresShell::HandlePositionedEvent layout/base/nsPresShell.cpp:6902 60 XUL PresShell::HandleEvent layout/base/nsPresShell.cpp:6734 61 XUL nsViewManager::DispatchEvent view/src/nsViewManager.cpp:1029 62 XUL HandleEvent view/src/nsView.cpp:159 63 XUL nsChildView::DispatchEvent widget/src/cocoa/nsChildView.mm:1493 64 XUL nsChildView::DispatchWindowEvent widget/src/cocoa/nsChildView.mm:1503 65 XUL -[ChildView mouseUp:] widget/src/cocoa/nsChildView.mm:3149 66 AppKit AppKit@0x13d7ec 67 CoreFoundation CoreFoundation@0x21eca 68 CoreFoundation CoreFoundation@0x100cb 69 libSystem.B.dylib libSystem.B.dylib@0x65d3 70 CoreFoundation CoreFoundation@0x6191 71 CoreFoundation CoreFoundation@0xf876 72 CoreFoundation CoreFoundation@0x100cb 73 CoreFoundation CoreFoundation@0xf876 74 CoreFoundation CoreFoundation@0xf6ce 75 libSystem.B.dylib libSystem.B.dylib@0x6b19 76 Foundation Foundation@0x5ff3 77 libobjc.A.dylib libobjc.A.dylib@0x619f 78 XUL -[ToolbarWindow sendEvent:] widget/src/cocoa/nsCocoaWindow.mm:2363 79 AppKit AppKit@0x72ee1 80 CoreFoundation CoreFoundation@0x24228 81 AppKit AppKit@0x71904 82 AppKit AppKit@0x749ff7 83 AppKit AppKit@0x749ff7 84 AppKit AppKit@0x43f09
Comment 12•13 years ago
|
||
And here's another crash immediately following, after clicking Save Changes in this bug comment. https://crash-stats.mozilla.com/report/index/bp-9c309c0f-e8ca-46ba-84e0-465712110809 Signature @0x0 | nsDeviceMotion::DeviceMotionChanged
Updated•13 years ago
|
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 13•13 years ago
|
||
jdm - if we have multiple callers to AddWindowListener with the same window, the call to RemoveWindowListener will just return the first one. This is probably the cause to this crash. do you agree?
Comment 14•13 years ago
|
||
nevermind ^^. mxr is like a week out of sync with the tip.
Assignee | ||
Comment 15•13 years ago
|
||
I'm pretty sure any further crashes should be filed as new ones.
Status: REOPENED → RESOLVED
Closed: 13 years ago → 13 years ago
Resolution: --- → FIXED
Updated•13 years ago
|
Resolution: FIXED → DUPLICATE
Assignee | ||
Comment 18•13 years ago
|
||
This is its own bug, not a duplicate.
Resolution: DUPLICATE → FIXED
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•