Closed Bug 717156 Opened 12 years ago Closed 12 years ago

B2G telephony: crash after page reload due to improper callback unregistering

Categories

(Core :: DOM: Device Interfaces, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla12

People

(Reporter: philikon, Assigned: philikon)

References

Details

Attachments

(1 file)

This is a Firefox desktop build with --enable-b2g-ril and a stupidly simple phone app.

Backtrace:

#0  0x00007f487cf0651d in nanosleep () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f487cf063bc in sleep () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f4877c9e3fd in ah_crap_handler (signum=11)
    at /home/philipp/dev/mc.hg/toolkit/xre/nsSigHandlers.cpp:121
#3  0x00007f4877ca40ac in nsProfileLock::FatalSignalHandler (signo=11, 
    info=0x7fffdacaa670, context=0x7fffdacaa540)
    at /home/philipp/dev/mc.hg/obj-ff-dbg/toolkit/profile/nsProfileLock.cpp:226
#4  <signal handler called>
#5  0x00007f48787fe9ba in mozilla::dom::telephony::Telephony::TelephoneCallback::CallStateChanged (this=0x7f485b8d3fc0, callIndex=1, callState=11, number=...)
    at /home/philipp/dev/mc.hg/dom/telephony/Telephony.h:146
#6  0x00007f487946161d in NS_InvokeByIndex_P (that=0x7f485b8d3fc0, 
    methodIndex=3, paramCount=3, params=0x7fffdacaac20)
    at /home/philipp/dev/mc.hg/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:195
#7  0x00007f4878caa7c7 in CallMethodHelper::Invoke (this=0x7fffdacaabe0)
    at /home/philipp/dev/mc.hg/js/xpconnect/src/XPCWrappedNative.cpp:2899
#8  0x00007f4878ca860d in CallMethodHelper::Call (this=0x7fffdacaabe0)
    at /home/philipp/dev/mc.hg/js/xpconnect/src/XPCWrappedNative.cpp:2230
#9  0x00007f4878ca84a4 in XPCWrappedNative::CallMethod (ccx=..., 
    mode=XPCWrappedNative::CALL_METHOD)
    at /home/philipp/dev/mc.hg/js/xpconnect/src/XPCWrappedNative.cpp:2196
#10 0x00007f4878cb594e in XPC_WN_CallMethod (cx=0x7f487c8be5f0, argc=3, 
---Type <return> to continue, or q <return> to quit---
    vp=0x7f48643fe288)
    at /home/philipp/dev/mc.hg/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1540
#11 0x00007f48799929b3 in js::CallJSNative (cx=0x7f487c8be5f0, 
    native=0x7f4878cb56f0 <XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*)>, args=...) at /home/philipp/dev/mc.hg/js/src/jscntxtinlines.h:311
#12 0x00007f4879977860 in js::InvokeKernel (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:520
#13 0x00007f48798ddc39 in js::Invoke (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.h:157
#14 0x00007f487992ab0a in js_fun_apply (cx=0x7f487c8be5f0, argc=2, 
    vp=0x7f48643fe268) at /home/philipp/dev/mc.hg/js/src/jsfun.cpp:1657
#15 0x00007f48799929b3 in js::CallJSNative (cx=0x7f487c8be5f0, 
    native=0x7f487992a880 <js_fun_apply(JSContext*, unsigned int, JS::Value*)>, args=...) at /home/philipp/dev/mc.hg/js/src/jscntxtinlines.h:311
#16 0x00007f4879977860 in js::InvokeKernel (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:520
#17 0x00007f48799851a6 in js::Interpret (cx=0x7f487c8be5f0, 
    entryFrame=0x7f48643fe0d0, interpMode=js::JSINTERP_NORMAL)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:3013
#18 0x00007f4879977614 in js::RunScript (cx=0x7f487c8be5f0, 
---Type <return> to continue, or q <return> to quit---
    script=0x7f486369d350, fp=0x7f48643fe0d0)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:475
#19 0x00007f4879977951 in js::InvokeKernel (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:538
#20 0x00007f48798ddc39 in js::Invoke (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.h:157
#21 0x00007f487992ad5e in js::CallOrConstructBoundFunction (cx=0x7f487c8be5f0, 
    argc=1, vp=0x7f48643fe0a0) at /home/philipp/dev/mc.hg/js/src/jsfun.cpp:1781
#22 0x00007f48799929b3 in js::CallJSNative (cx=0x7f487c8be5f0, 
    native=0x7f487992ab68 <js::CallOrConstructBoundFunction(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /home/philipp/dev/mc.hg/js/src/jscntxtinlines.h:311
#23 0x00007f4879977860 in js::InvokeKernel (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:520
#24 0x00007f48798ddc39 in js::Invoke (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.h:157
#25 0x00007f4879977b3a in js::Invoke (cx=0x7f487c8be5f0, thisv=..., fval=..., 
    argc=1, argv=0x7fffdacac4d0, rval=0x7fffdacac4e0)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:570
---Type <return> to continue, or q <return> to quit---
#26 0x00007f48798ba673 in JS_CallFunctionValue (cx=0x7f487c8be5f0, 
    obj=0x7f4863697cd0, fval=..., argc=1, argv=0x7fffdacac4d0, 
    rval=0x7fffdacac4e0) at /home/philipp/dev/mc.hg/js/src/jsapi.cpp:5455
#27 0x00007f487880f935 in mozilla::dom::workers::events::ListenerManager::DispatchEvent (this=0x7f48634bf000, aCx=0x7f487c8be5f0, aTarget=0x7f4863697cd0, 
    aEvent=0x7f4856d6a060, aPreventDefaultCalled=0x7fffdacac60f)
    at /home/philipp/dev/mc.hg/dom/workers/ListenerManager.cpp:437
#28 0x00007f48788090c6 in mozilla::dom::workers::events::EventTarget::DispatchEvent (aCx=0x7f487c8be5f0, aArgc=1, aVp=0x7f48643fe088)
    at /home/philipp/dev/mc.hg/dom/workers/EventTarget.cpp:220
#29 0x00007f48799929b3 in js::CallJSNative (cx=0x7f487c8be5f0, 
    native=0x7f4878809002 <mozilla::dom::workers::events::EventTarget::DispatchEvent(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /home/philipp/dev/mc.hg/js/src/jscntxtinlines.h:311
#30 0x00007f4879977860 in js::InvokeKernel (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:520
#31 0x00007f48798ddc39 in js::Invoke (cx=0x7f487c8be5f0, args=..., 
    construct=js::NO_CONSTRUCT)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.h:157
#32 0x00007f4879977b3a in js::Invoke (cx=0x7f487c8be5f0, thisv=..., fval=..., 
    argc=1, argv=0x7fffdacac910, rval=0x7fffdacac920)
    at /home/philipp/dev/mc.hg/js/src/jsinterp.cpp:570
---Type <return> to continue, or q <return> to quit---
#33 0x00007f48798ba446 in JS_CallFunctionName (cx=0x7f487c8be5f0, 
    obj=0x7f4863697cd0, name=0x7f4879edb68d "dispatchEvent", argc=1, 
    argv=0x7fffdacac910, rval=0x7fffdacac920)
    at /home/philipp/dev/mc.hg/js/src/jsapi.cpp:5442
#34 0x00007f48788087f4 in mozilla::dom::workers::events::DispatchEventToTarget
    (aCx=0x7f487c8be5f0, aTarget=0x7f4863697cd0, aEvent=0x7f4856d6a060, 
    aPreventDefaultCalled=0x7fffdacac98e)
    at /home/philipp/dev/mc.hg/dom/workers/Events.cpp:1185
#35 0x00007f487882004a in (anonymous namespace)::MessageEventRunnable::WorkerRun (this=0x7f48561c3980, aCx=0x7f487c8be5f0, aWorkerPrivate=0x7f48634bf000)
    at /home/philipp/dev/mc.hg/dom/workers/WorkerPrivate.cpp:898
#36 0x00007f487882230a in mozilla::dom::workers::WorkerRunnable::Run (
    this=0x7f48561c3980)
    at /home/philipp/dev/mc.hg/dom/workers/WorkerPrivate.cpp:1662
#37 0x00007f4879439673 in nsThread::ProcessNextEvent (this=0x7f487c85dd40, 
    mayWait=true, result=0x7fffdacacb6f)
    at /home/philipp/dev/mc.hg/xpcom/threads/nsThread.cpp:660
#38 0x00007f48793cb9f7 in NS_ProcessNextEvent_P (thread=0x7f487c85dd40, 
    mayWait=true)
    at /home/philipp/dev/mc.hg/obj-ff-dbg/xpcom/build/nsThreadUtils.cpp:245
#39 0x00007f48792a3bda in mozilla::ipc::MessagePump::Run (this=0x7f486e246780, 
    aDelegate=0x7f487c8d6a80)
    at /home/philipp/dev/mc.hg/ipc/glue/MessagePump.cpp:134
---Type <return> to continue, or q <return> to quit---
#40 0x00007f487948b38d in MessageLoop::RunInternal (this=0x7f487c8d6a80)
    at /home/philipp/dev/mc.hg/ipc/chromium/src/base/message_loop.cc:208
#41 0x00007f487948b31e in MessageLoop::RunHandler (this=0x7f487c8d6a80)
    at /home/philipp/dev/mc.hg/ipc/chromium/src/base/message_loop.cc:201
#42 0x00007f487948b2f7 in MessageLoop::Run (this=0x7f487c8d6a80)
    at /home/philipp/dev/mc.hg/ipc/chromium/src/base/message_loop.cc:175
#43 0x00007f487913c684 in nsBaseAppShell::Run (this=0x7f48698d84e0)
    at /home/philipp/dev/mc.hg/widget/xpwidgets/nsBaseAppShell.cpp:189
#44 0x00007f4878e802d6 in nsAppStartup::Run (this=0x7f48698ef510)
    at /home/philipp/dev/mc.hg/toolkit/components/startup/nsAppStartup.cpp:220
#45 0x00007f4877c8ff69 in XRE_main (argc=4, argv=0x7fffdacaf818, 
    aAppData=0x623c60)
    at /home/philipp/dev/mc.hg/toolkit/xre/nsAppRunner.cpp:3537
#46 0x00000000004023f9 in do_main (
    exePath=0x7fffdacae710 "/home/philipp/dev/mc.hg/obj-ff-dbg/dist/bin/", 
    argc=4, argv=0x7fffdacaf818)
    at /home/philipp/dev/mc.hg/browser/app/nsBrowserApp.cpp:205
#47 0x0000000000402660 in main (argc=4, argv=0x7fffdacaf818)
    at /home/philipp/dev/mc.hg/browser/app/nsBrowserApp.cpp:295
Version: unspecified → Trunk
Summary: B2G telephony: crash on incoming call in desktop build → B2G telephony: crash after page reload due to improper callback unregistering
Attached patch v1Splinter Review
Looks like we tried to be smarter than we actually are ;). Fixed! Code is much dumber now.
Assignee: nobody → philipp
Attachment #587807 - Flags: review?(bent.mozilla)
Attachment #587807 - Flags: review?(bent.mozilla) → review+
https://hg.mozilla.org/mozilla-central/rev/ece727bdde6e
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla12
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: