Closed Bug 683385 Opened 13 years ago Closed 13 years ago

skiplist symbols in libdvm.so module

Categories

(Socorro :: General, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dougt, Assigned: laura)

Details

I think we want to trip / skiplist symbols that are in libdvm.so. Right now we have lots of stacks that come in as:


Frame 	Module 	Signature [Expand] 	Source
0 	libdvm.so 	libdvm.so@0x40280 	
1 	dalvik-LinearAlloc (deleted) 	dalvik-LinearAlloc @0x1e5eb3 	
2 	libdvm.so 	libdvm.so@0x31650 	
3 	dalvik-LinearAlloc (deleted) 	dalvik-LinearAlloc @0x1e5eb3 	
4 	libdvm.so 	libdvm.so@0x32400 	
5 	data@app@org.mozilla.fennec-1.apk@classes.dex 	data@app@org.mozilla.fennec-1.apk@classes.dex@0x12b23 	
6 	libdvm.so 	libdvm.so@0x8267b 	
7 	libdvm.so 	libdvm.so@0x396ea 	
8 	libdvm.so 	libdvm.so@0x8267b 	
9 	dalvik-heap (deleted) 	dalvik-heap @0x60a5cf 	
10 	dalvik-LinearAlloc (deleted) 	dalvik-LinearAlloc @0x1e5eb3 	
11 	libdvm.so 	libdvm.so@0x39674 	
12 	dalvik-heap (deleted) 	dalvik-heap @0x71163f 	
13 	libxul.so 	_JNIEnv::CallStaticObjectMethod 	jni.h:764
14 	libxul.so 	mozilla::AndroidBridge::SetClipboardText 	widget/src/android/AndroidBridge.cpp:537
15 	libxul.so 	nsClipboard::SetData 	widget/src/android/nsClipboard.cpp:80
16 	libxul.so 	nsClipboardHelper::CopyStringToClipboard 	widget/src/xpwidgets/nsClipboardHelper.cpp:128
17 	libxul.so 	nsClipboardHelper::CopyString 	widget/src/xpwidgets/nsClipboardHelper.cpp:138
18 	libxul.so 	NS_InvokeByIndex_P 	xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp:199
19 	libxul.so 	XPCWrappedNative::CallMethod 	js/src/xpconnect/src/xpcwrappednative.cpp:3151
20 	libxul.so 	XPC_WN_CallMethod 	js/src/xpconnect/src/xpcwrappednativejsops.cpp:1607
21 	libxul.so 	js::Invoke 	js/src/jscntxtinlines.h:287
22 	libxul.so 	js::Interpret 	js/src/jsinterp.cpp:4553
23 	libxul.so 	js::ExternalInvoke 	js/src/jsinterp.cpp:613
24 	libxul.so 	JS_CallFunctionValue 	js/src/jsapi.cpp:5088
25 	libxul.so 	nsJSContext::CallEventHandler 	dom/base/nsJSEnvironment.cpp:1901
26 	libxul.so 	nsJSEventListener::HandleEvent 	dom/src/events


The most important frame is 

13 	libxul.so 	_JNIEnv::CallStaticObjectMethod 	jni.h:764

Other frames are alot less important and get in the way of filing bugs.  Does it make sense to skiplist such symbols only on Fennec for android?
So what exact regexes should the Socorro team add to the skiplist?

I think skiplist is platform-agnostic, but dvm/dalvik is Android-specific anyhow and not used anywhere, so there's not much point in making it specific.
kairo - I do not know what regex should be used.  I also do not know how to test any regex i would build.
libdvm.so\s*@\s*0x([0-9a-f]+)
dalvik-LinearAlloc\s*@\s*@0x([0-9a-f]+)
dalvik-heap\s*@\s*@0x([0-9a-f]+)
data@app@org.mozilla.fennec-1.apk@classes.dex\s*@\s*@0x([0-9a-f]+)

I'm not sure if the last one is too specific, but the others should take care of the frames we don't care about.
jdm, do we want to and "libc\.so@.*" and "libEGL\.so@.*" to the skiplist?  this was what kairo suggested in a meeting.
Those sound like sensible choices as well. Please note that the . in my earlier regexes should be escaped in a similar manner.
libc-2\.5\.so@.* would be another good choice.
As far as the list goes so far we have:
libdvm\.so\s*@\s*0x([0-9a-f]+)
dalvik-LinearAlloc\s*@\s*@0x([0-9a-f]+)
dalvik-heap\s*@\s*@0x([0-9a-f]+)
data@app@org\.mozilla\.fennec-1\.apk@classes\.dex\s*@\s*@0x([0-9a-f]+)
libc\.so@.*
libEGL\.so@.*
libc-2\.5\.so@.*

I'm starting to see a number of crashes that look like:
@0x84914e9c in the nightly as well. (Example in bug 683133)  Should we include something like:
@0x([0-9a-f]+)
We already skip bare addresses. In that particular crash, there are no other frames available, so there's no better signature we can give.
Make sure that the fourth regex there is actually two regexes.
(In reply to Josh Matthews [:jdm] from comment #9)
> Make sure that the fourth regex there is actually two regexes.

No, that sounds wrong, but the regex itself is also incorrect from what I see. "data@app@org.mozilla.fennec-1.apk@classes.dex@0x12b23" is what it should cover, so it's this one:
data@app@org\.mozilla\.fennec-1\.apk@classes\.dex@0x[0-9a-f]+

I think someone needs to decide if we prefer @0x[0-9a-f]+ or @.* for the addresses, we never should need brackets around the hex number, though.
I started the whole 0-9a-f thing, and I'm happy to go with the existing style of .*
There are three different kinds of Skiplist rules.  I'm assuming that all of these expressions above would come under the irrelevantSignatureRegEx?  

Descriptions of the three different kinds can be found here:
https://wiki.mozilla.org/Breakpad/Skip_List_How_To

Can somebody please confirm, and I'll get these added?
Yes, let's use the irrelevantSignatureRegEx for these, please.
Assignee: nobody → laura
Target Milestone: --- → 2.2.4
r+

merged as:
https://github.com/mozilla/socorro/commit/108634ecff4a49a11ec017a489c1fab981560e53
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Component: Socorro → General
Product: Webtools → Socorro
You need to log in before you can comment on or make changes to this bug.