Closed Bug 421119 Opened 13 years ago Closed 8 years ago

function for socorro to compare stacks of two or more crash reports


(Socorro :: General, task, P3)


(Not tracked)



(Reporter: wsmwk, Unassigned)



a function for socorro to compare and show stacks of two or more crash reports, allowing for faster and more accurate determination of whether two stacks are the same, or how similar they are - with less eyestrain

comparison could be a trivial straight out line-by-line of stack A and stack B

same?  line  StackA  StackB
Y      1     abc     -
Y      2     def     -
N      3     xyz     zyx

Or more sophisticated comparison wherein it tries to match up as many frames as possible

same?  StackA     StackB
Y      1. abc     1. -
Y      2. def     2. -
N         -       3. foobar
Y      3. barfoo  4. barfoo 
N         -       5. kazoo
Y      4. xyz     6. xyz
Ah, this is the bug I was talking about, I think. We could offer this as a manual process, as described here, or run a complicated topcrash-like query to determine whether two stacks were similar.
Ever confirmed: true
yeah, this is the start of what we need for "smart analysis"

one kind of pattern we need to look for is

           xxx    xxx
           xxx    xxx
   abc     abc    abc
   def     def    def
   ghi     ghi    ghi
   yyy     yyy    yyy


is the offending code, and some times it just takes longer for the crash to occur so there might be some code execution after the problem sets in..

another case is sorting out several problems from one stack signature like in

in that single stack signature we have a variety of bugs..  some *might* be connected like example 1 and 2 below that deal with menu system code, and some might be entirely different areas like layout, but they all end up crashing in an OS library...   so we need a bit more precision and depth to the stack signature name.  maybe for this post processing we add the "address" field as part of the signature

nsObjCExceptionLogAbort(NSException*) + address 0x1017eb8  	

0  	XUL  	nsObjCExceptionLogAbort  	 mozilla/toolkit/xre/
1 	XUL 	-[MacApplicationDelegate applicationDockMenu:] 	mozilla/toolkit/xre/
2 	AppKit 	AppKit@0x2b5467 	
3 	AppKit 	AppKit@0x120586 	
4 	HIServices 	HIServices@0x1e2c1 	
5 	HIServices 	HIServices@0x1e227 	
6 	HIServices 	HIServices@0x49ff 	
7 	HIServices 	HIServices@0x4918 	
8 	CoreFoundation 	CoreFoundation@0x322f4 	
9 	CoreFoundation 	CoreFoundation@0x22594 	
10 	CoreFoundation 	CoreFoundation@0x21a35

nsObjCExceptionLogAbort(NSException*) + address 0x13c2e0c

0  	XUL  	nsObjCExceptionLogAbort  	 mozilla/widget/src/cocoa/
1 	XUL 	nsMenuX::RemoveAll 	mozilla/widget/src/cocoa/
2 	XUL 	nsMenuX::~nsMenuX 	mozilla/widget/src/cocoa/
3 	XUL 	nsMenuX::Release 	mozilla/widget/src/cocoa/
4 	XUL 	ReleaseObjects 	nsCOMArray.cpp:151
5 	XUL 	nsVoidArray::EnumerateForwards 	nsVoidArray.cpp:678
6 	XUL 	nsCOMArray_base::Clear 	nsCOMArray.cpp:158
7 	XUL 	nsMenuBarX::~nsMenuBarX 	mozilla/widget/src/cocoa/
8 	XUL 	nsMenuBarX::Release 	mozilla/widget/src/cocoa/
9 	XUL 	nsCOMPtr_base::~nsCOMPtr_base 	nsCOMPtr.cpp:81
10 	XUL 	nsCocoaWindow::~nsCocoaWindow 	mozilla/widget/src/cocoa/

nsObjCExceptionLogAbort(NSException*) + address 0x13c2e0c
0  	XUL  	nsObjCExceptionLogAbort  	 mozilla/widget/src/cocoa/
1 	XUL 	nsCocoaWindow::Show 	mozilla/widget/src/cocoa/
2 	XUL 	nsView::SetVisibility 	mozilla/view/src/nsView.cpp:473
3 	XUL 	nsViewManager::SetViewVisibility 	mozilla/view/src/nsViewManager.cpp:1741
4 	XUL 	nsMenuPopupFrame::AdjustView 	mozilla/layout/xul/base/src/nsMenuPopupFrame.cpp:329
5 	XUL 	nsPopupSetFrame::DoLayout 	mozilla/layout/xul/base/src/nsMenuBarListener.cpp:213
6 	XUL 	nsIFrame::Layout 	mozilla/layout/xul/base/src/nsBox.cpp:561
7 	XUL 	nsSprocketLayout::Layout 	mozilla/layout/xul/base/src/nsSprocketLayout.cpp:523

thats something like is done for
Blocks: 418386
See also bug 512910.
Severity: enhancement → minor
Priority: -- → P3
Target Milestone: --- → 2.1
Target Milestone: 2.1 → 2.2
Target Milestone: 2.2 → 2.3
Target Milestone: 2.3 → 2.3.1
Target Milestone: 2.3.1 → 2.3.2
Target Milestone: 2.3.2 → ---
Component: Socorro → General
Product: Webtools → Socorro
Still wanted?
I don't think this is a scoped task which we can directly prioritize. If somebody wants to work on prototyping smarter analysis of common stacks, I'm happy to help you get started using mapreduce jobs. Until then, let's not track this.
Closed: 8 years ago
Resolution: --- → INCOMPLETE
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #7)
> I don't think this is a scoped task which we can directly prioritize.

Please give more detail - I don't understand what this means. Does it mean there is not enough information here to spec a solution?  And if so, why not ask for me info rather than just close.
Flags: needinfo?(benjamin)
Conversely, is what's requested here covered by bug 512910
Flags: needinfo?(chofmann)
One of my priorities is exposing raw bug data to the public in a machine-readable way, so that anyone can build a stack-comparison tool to suit their needs. As it stands, comparing just two stacks is rarely sufficient, and classifying many stacks requires something like bug 512910 (which I purposefully still left open, although any really good solution is going to require significant amounts of work).

So whether this is WONTFIX or just INCOMPLETE, I don't think it's a task that the Socorro team should currently track, which is why I closed it.
Flags: needinfo?(chofmann)
Flags: needinfo?(benjamin)
You need to log in before you can comment on or make changes to this bug.