Closed Bug 621386 Opened 9 years ago Closed 9 years ago

Crash [@ mozilla::ipc::RPCChannel::CxxStackFrame::CxxStackFrame] (from PContentParent::SendGeolocationUpdate)

Categories

(Core :: DOM: Geolocation, defect)

x86
Linux
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla2.0b12

People

(Reporter: jdm, Assigned: jdm)

References

Details

(Keywords: crash)

Crash Data

Attachments

(1 file, 2 obsolete files)

ID: 249f438f-1c28-46e5-b949-3da632101224
Signature: mozilla::ipc::RPCChannel::CxxStackFrame::CxxStackFrame

UUID	249f438f-1c28-46e5-b949-3da632101224
Time 	2010-12-24 19:47:56.841552
Uptime	742
Install Age	200080 seconds (2.3 days) since version was first installed.
Product	Fennec
Version	4.0b3
Build ID	20101221205132
Branch	1.9
OS	Linux
OS Version	0.0.0 Linux 2.6.32.9-g55626e1 #1 PREEMPT Sun Nov 7 23:24:32 CST 2010 armv7l
CPU	arm
CPU Info	
Crash Reason	SIGSEGV
Crash Address	0x0
User Comments	
App Notes 	motorola DROIDX
verizon/shadow_vzw/cdma_shadow/shadow:2.2.1/VZW/23.340:user/ota-rel-keys,release-keys
Processor Notes 	
EMCheckCompatibility	False

Frame 	Module 	Signature [Expand] 	Source
0 	libxul.so 	mozilla::ipc::RPCChannel::CxxStackFrame::CxxStackFrame 	RPCChannel.h:222
1 	libxul.so 	mozilla::ipc::RPCChannel::Send 	ipc/glue/RPCChannel.cpp:142
2 	libxul.so 	mozilla::dom::PContentParent::SendGeolocationUpdate 	PContentParent.cpp:475
3 	libxul.so 	mozilla::dom::ContentParent::HandleEvent 	dom/ipc/ContentParent.cpp:781
4 	libxul.so 	nsGeolocationRequest::SendLocation 	nsCOMPtr.h:800
5 	libxul.so 	RequestSendLocationEvent::Run 	nsAutoPtr.h:1098
6 	libxul.so 	nsThread::ProcessNextEvent 	xpcom/threads/nsThread.cpp:626
7 	libxul.so 	NS_InvokeByIndex_P 	xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp:199
8 	libxul.so 	XPCWrappedNative::CallMethod 	js/src/xpconnect/src/xpcwrappednative.cpp:3064
9 	libxul.so 	XPC_WN_CallMethod 	js/src/xpconnect/src/xpcwrappednativejsops.cpp:1588
10 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
11 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
12 	libxul.so 	js_fun_apply 	js/src/jsfun.cpp:2292
13 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
14 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
15 	libxul.so 	js_fun_call 	js/src/jsfun.cpp:2226
16 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
17 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
18 	libxul.so 	js::ExternalInvoke 	js/src/jsinterp.cpp:858
19 	libxul.so 	JS_CallFunctionValue 	js/src/jsinterp.h:962
20 	libxul.so 	nsXPCWrappedJSClass::CallMethod 	js/src/xpconnect/src/xpcwrappedjsclass.cpp:1694
21 	libxul.so 	nsXPCWrappedJS::CallMethod 	js/src/xpconnect/src/xpcwrappedjs.cpp:589
22 	libxul.so 	PrepareAndDispatch 	xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp:134
23 	libxul.so 	libxul.so@0x956ed4 	
24 	libxul.so 	nsNavHistory::RunInBatchMode 	toolkit/components/places/src/nsNavHistory.cpp:4412
25 		@0x4e9bd48f 	
26 	libxul.so 	nsNavBookmarks::RunInBatchMode 	toolkit/components/places/src/nsNavBookmarks.cpp:2979
27 	libxul.so 	NS_InvokeByIndex_P 	xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp:199
28 	libxul.so 	xptiInterfaceEntry::GetEntryForParam 	xpcom/reflect/xptinfo/src/xptiInterfaceInfo.cpp:328
29 	libxul.so 	libxul.so@0xf367b 	
30 	libxul.so 	XPCWrappedNative::CallMethod 	js/src/xpconnect/src/xpcwrappednative.cpp:3064
31 	libxul.so 	XPC_WN_CallMethod 	js/src/xpconnect/src/xpcwrappednativejsops.cpp:1588
32 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
33 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
34 	libxul.so 	js_fun_apply 	js/src/jsfun.cpp:2292
35 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
36 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
37 	libxul.so 	js_fun_call 	js/src/jsfun.cpp:2226
38 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
39 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
40 	libxul.so 	js_fun_call 	js/src/jsfun.cpp:2226
41 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
42 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
43 	libxul.so 	js_fun_call 	js/src/jsfun.cpp:2226
44 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
45 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
46 	libxul.so 	js_fun_call 	js/src/jsfun.cpp:2226
47 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
48 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
49 	libxul.so 	js_fun_call 	js/src/jsfun.cpp:2226
50 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4750
51 	libxul.so 	js::Invoke 	js/src/jsinterp.cpp:657
52 	libxul.so 	js::ExternalInvoke 	js/src/jsinterp.cpp:858
53 	libxul.so 	JS_CallFunctionValue 	js/src/jsinterp.h:962
54 	libxul.so 	nsXPCWrappedJSClass::CallMethod 	js/src/xpconnect/src/xpcwrappedjsclass.cpp:1694
55 	libxul.so 	nsXPCWrappedJS::CallMethod 	js/src/xpconnect/src/xpcwrappedjs.cpp:589
56 	libxul.so 	PrepareAndDispatch 	xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp:134
57 	libxul.so 	libxul.so@0x956ed4 	
58 	libxul.so 	nsTimerImpl::Fire 	xpcom/threads/nsTimerImpl.cpp:429
Let's guard sending the update to the parent with a check for mIsAlive.
Actually this is a better way to fix this crash.  The observers and listeners aren't helpful after the process dies, so let's move all the cleanup into a common location and trigger it on ActorDestroy or xpcom-shutdown, whichever comes first.
Duplicate of this bug: 577398
Attachment #499770 - Attachment is obsolete: true
Comment on attachment 499772 [details] [diff] [review]
Clean up all ContentParent observers and listeners on actor destruction and xpcom-shutdown.

Would be nice to have a test for this...
Attachment #499772 - Flags: review?(benjamin)
Attachment #499772 - Flags: review+
Attachment #499772 - Flags: approval2.0+
Assignee: nobody → josh
A test would require killing a content process.  Do we have any easy way of doing that?
Keywords: checkin-needed
Backed out in http://hg.mozilla.org/mozilla-central/rev/ae405aed26bd, because it caused xpcshell orange.
This wasn't actually backed out; the above messages belong in bug 621386.
Comment 10 is a lie, and the author of comment 10 is accordingly a liar.  Don't believe anything that liar writes; he is a liar.  He is also easily confused.
heh, I was gonna say...
Attachment #499772 - Attachment is obsolete: true
xpcshell tests broke because xpcom-shutdown called Cleanup then Close, which causes ActorDestroy to be called which itself calls Cleanup, and we assert trying to remove the observers again.  Accordingly, we can move all of the cleanup code into ActorDestroy, because it will be called in the case of xpcom-shutdown as well as unexpected errors.
Attachment #508449 - Flags: review?(benjamin)
Attachment #508449 - Attachment description: Clean up all ContentParent observers and listeners on actor destruction and xpcom-shutdown. up all ContentParent observers and listeners on actor destruction and xpcom-shutdown. r+ → Clean up all ContentParent observers and listeners on actor destruction and xpcom-shutdown.
Attachment #508449 - Flags: review?(benjamin) → review+
I think carrying over the a+ from the earlier functionally-equivalent patch is appropriate, so I'm marking this checkin-needed.
Keywords: checkin-needed
http://hg.mozilla.org/mozilla-central/rev/8df0d4bd765f
Status: NEW → RESOLVED
Closed: 9 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0b12
Status: RESOLVED → VERIFIED
Depends on: 631442
Crash Signature: [@ mozilla::ipc::RPCChannel::CxxStackFrame::CxxStackFrame]
You need to log in before you can comment on or make changes to this bug.