Closed Bug 543605 Opened 14 years ago Closed 14 years ago

Integrate highly correlated addons and modules into the top crashers by signature report

Categories

(Socorro :: General, task)

x86
macOS
task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ozten, Assigned: ozten)

Details

(Whiteboard: [crashkill][crashkill-metrics])

Attachments

(1 file, 1 obsolete file)

At a glance when viewing the top crashers by signature report, we should be able to see addons or modules which have a high correlation of crashes.

This would be like the bugzilla column.

This will be somewhat hacky, but is needed before 'cloud' is available.
Whiteboard: [crashkill]
Target Milestone: --- → 1.5
Whiteboard: [crashkill] → [crashkill][crashkill-metrics]
See also bug 524851, for showing (more) correlations on the individual-signature pages.
What's the timeframe for this?  Able to make 1.5 (2/22)?
(In reply to comment #2)
I doubt that this is doable for 1.5.

I'll start on this now.
Assignee: nobody → ozten.bugs
I'm having some trouble with choosing the best user interaction model.

http://www.screencast.com/users/ozten/folders/Jing/media/a1129124-2fb0-483f-b05d-b3eeb5070749

This report is a 300 row table. The bugzilla list and correlation data seem like they want to be "drill down" elements. Expanding their content is clunky.

Bugzilla uses a hover box, this doesn't scale to the new correlation data since they are longer than a screen.

Created a screencast to get feedback.
ozten: XML Parsing Error: not well-formed
Location: http://www.screencast.com/users/ozten/folders/Jing/media/a1129124-2fb0-483f-b05d-b3eeb5070749
Line Number 87, Column 44:         if ( boundsWidth > originalWidth && boundsHeight > originalHeight || 
-------------------------------------------^
(In reply to comment #5)
Are you able to view the screencast? 

This is not a page I authored, it is a 3rd party tool (Jing) that uses Flash and may have all kinds of b0rk3n. Upside is that it takes 30 seconds to capture and upload a screencast.
heh. no, not with granparadiso, shiretoko, namoroka or minefield.
The main point of the screencast is that the correlation data (at least as it's currently presented) is a lot to put in a column of the topcrash table.  So maybe we want something more like bug 524851.
For the topcrash column, I think only very strong correlations should be shown, and without numbers.  (By "strong", I think I mean the left number is really close to 100% or the right number is really close to 0%.)
* Use a hover box to show a limited set of top correlators, then add a link to show all correlation data. This could open in a lightbox on the same page, or open the signature's page on the Correlations tab.

* Consolidate when space is limited. Remove the UUID if you have an add-on's name (place it in the title attr). Remove the URL attached to an add-on's name (make the add-on name a link). Remove the figures (but not percentages) as a last resort.
(In reply to comment #9)
I need so guidance around strong correlations.

It seems like the data is subject to interpretation, so showing only a subset might be a problem.

I verified with dbaron that the current sort is okay, which is ThisCrashSigPercentage - AllCrashSigsPercentage

Example from Screencast:
54% (28/52) vs.  24% (24706/102364) mdnsNSP.dll
21% (11/52) vs.   5% (5278/102364) mslbui.dll
69% (36/52) vs.  54% (55645/102364) apphelp.dll
27% (14/52) vs.  12% (12405/102364) GrooveShellExtensions.dll
27% (14/52) vs.  12% (12410/102364) GrooveNew.DLL
27% (14/52) vs.  12% (12410/102364) GrooveUtil.DLL
96% (50/52) vs.  82% (83805/102364) shdocvw.dll
27% (14/52) vs.  13% (13476/102364) ATL80.dll
13% (7/52) vs.   0% (474/102364) ColorZilla.dll
69% (36/52) vs.  57% (57943/102364) msctf.dll
12% (6/52) vs.   0% (273/102364) DropboxExt.3.dll
23% (12/52) vs.  12% (12177/102364) wshbth.dll
13% (7/52) vs.   3% (2929/102364) MSNLNamespaceMgr.dll
100% (52/52) vs.  90% (91909/102364) nssckbi.dll
100% (52/52) vs.  90% (92166/102364) freebl3.dll
100% (52/52) vs.  90% (92198/102364) nssdbm3.dll
100% (52/52) vs.  90% (92234/102364) softokn3.dll
10% (5/52) vs.   0% (75/102364) nsCatcher.dll
15% (8/52) vs.   6% (5981/102364) GrooveMisc.dll
100% (52/52) vs.  91% (93346/102364) wininet.dll
12% (6/52) vs.   3% (3003/102364) rpchromebrowserrecordhelper.dll
15% (8/52) vs.   7% (6895/102364) GrooveSystemServices.dll
75% (39/52) vs.  67% (68179/102364) normaliz.dll
75% (39/52) vs.  67% (68960/102364) iertutil.dll
98% (51/52) vs.  90% (92601/102364) crypt32.dll
10% (5/52) vs.   2% (2072/102364) shfolder.dll
98% (51/52) vs.  90% (92636/102364) msasn1.dll
8% (4/52) vs.   0% (218/102364) AMInit.dll
31% (16/52) vs.  23% (23928/102364) EhStorShell.dll
8% (4/52) vs.   0% (431/102364) TortoiseSVN.dll
8% (4/52) vs.   0% (431/102364) intl3_tsvn.dll
8% (4/52) vs.   0% (434/102364) TortoiseStub.dll
8% (4/52) vs.   0% (450/102364) TortoiseOverlays.dll
8% (4/52) vs.   0% (458/102364) libapr_tsvn.dll
8% (4/52) vs.   0% (458/102364) libaprutil_tsvn.dll
17% (9/52) vs.  10% (10243/102364) msvcp71.dll
100% (52/52) vs.  93% (94918/102364) mscms.dll
98% (51/52) vs.  91% (93372/102364) ntmarta.dll
12% (6/52) vs.   5% (4875/102364) msvcp90.dll
8% (4/52) vs.   1% (975/102364) hccutils.dll
37% (19/52) vs.  30% (30536/102364) pnrpnsp.dll
98% (51/52) vs.  91% (93577/102364) rasadhlp.dll
10% (5/52) vs.   3% (3042/102364) avgrsstx.dll
62% (32/52) vs.  55% (56629/102364) cryptui.dll
10% (5/52) vs.   3% (3560/102364) BtMmHook.dll
12% (6/52) vs.   6% (5763/102364) msvcr90.dll
37% (19/52) vs.  31% (31659/102364) wship6.dll
12% (6/52) vs.   6% (6449/102364) avglvex.dll
12% (6/52) vs.   6% (6540/102364) avgssff.dll
44% (23/52) vs.  39% (39559/102364) msvcr80.dll
19% (10/52) vs.  14% (14306/102364) explorerframe.dll
19% (10/52) vs.  14% (14308/102364) dui70.dll
23% (12/52) vs.  18% (18273/102364) cscapi.dll

There are cases (nssckbi.dll) where this sorting penalizes a ThisCrashSigPercentage is 100% if AllCrashSigsPercentage = 90% because the difference is only 10 percent.
(In reply to comment #10)
We can show top N correlations in a hover box with a link to:
1) the correlation tab of a random instance of the top crashing signature
or
2) a standlone page which is similar to the crash report correlation tab. This page's url would be roughly /correlation/report/{os}/{product}/{version}/{signature}

Removing data to conserve space... interesting ideas, especially when this is implemented in hadoop and we have fixed fields.
(In reply to comment #12)
> 1) the correlation tab of a random instance of the top crashing signature
> or
> 2) a standlone page which is similar to the crash report correlation tab. This
> page's url would be roughly
> /correlation/report/{os}/{product}/{version}/{signature}

Couldn't this simply be a tab on the signature page (a la bug 524851)?

> Removing data to conserve space... interesting ideas, especially when this is
> implemented in hadoop and we have fixed fields.

I'll just leave this here: http://bit.ly/cpgtMB
(In reply to comment #3)
Not ready for yesterday's code freeze. Bumping to 1.6 release.
Target Milestone: 1.5 → 1.6
First attempt, this adds Correlations to
* report/list - Search results page
* topcrashers/byversion - Top Crashers report
* Updates report/index - Crash detail page

js/jquery/plugin/jquery.girdle.min.js - Original source is for this project, but hosted at http://github.com/ozten/jquery-girdle-plugin. Please review original source.

Notes:
* Correlations are now sorted, after loading
* Correlations reworked to allow for specific product/version/platform/signature combos
* This makes optimizations like limiting the max file size read much more difficult, so they've been removed
** Max memory reached errors now possible when loading extremely large correlation reports off of people.
* Displaying correlation on top crashers is fairly slow, but doesn't block page rendering
** Performance was improved from horrible while creating this patch
** More perf work may be needed, but let's see how it stages
Attachment #429825 - Flags: review?(ryan)
Comment on attachment 429825 [details] [diff] [review]
First attempt to add correlations

Great work!  There's a lot of solid code in here - it's ambitious yet thorough and thoughtful.

Correlation reports take up to 20 seconds to load, from what I can tell at the moment.  It's a major improvement, but still seems a bit heavy to have all of those calls take place in 1 page.  But at the moment I can't think of a better solution that would still provide a desirable UI.

* Is there a better place for the HTML found in _formatCorrelationData()?  Always good to keep HTML out of models and controllers.

* Place $types array in _reportType() into a config file.

* Place set_time_limit(60 * 5) variable from Correlation_Controller::ajax() and bulk_ajax() in a config file.

* I'm not crazy about the Correlation UI.  It seems like this "Read More" link should take the user to a separate page to view all of the information.

* Need a correlation.php-dist

* In views/common/correlation.php can we move $url_path up into the controller?  We have a tendency to put too much logic in the views and I'd like to see us move more logic up into the controller to keep the views more HTML centric.  Same with <?= url::site('/correlation/ajax')?>.

* "TODO"s remain in screen.css

* Javascript looks solid
Attachment #429825 - Flags: review?(ryan) → review-
Thanks for the feedback. Per Comment#16.

Removed html from controller and created a view.

Pullet set_time_limit out into config.

> I'm not crazy about the Correlation UI.  It seems like this "Read More" link
should take the user to a separate page to view all of the information.

Removed trimming the correlations to the top 5 and now showing all correlations.

Created correlation.php-dist. Note: Created correlation.php is checked in so no manual tasks are required. These correlation reports are a temporary hack and we'll want to remove the config some day.

We've discussed on IRC why I didn't make the couple other changes. Thanks!
Attachment #429825 - Attachment is obsolete: true
Attachment #433822 - Flags: review?(ryan)
Attachment #433822 - Flags: feedback?
Attachment #433822 - Flags: feedback? → feedback?(laura)
Comment on attachment 433822 [details] [diff] [review]
Second attempt at correlation integration

Solid work!  Will need to file another ticket to rethink the UI, but this will definitely suffice for the first implementation.
Attachment #433822 - Flags: review?(ryan) → review+
Sending        webapp-php/application/config/correlation.php
Adding         webapp-php/application/config/correlation.php-dist
Sending        webapp-php/application/controllers/correlation.php
Sending        webapp-php/application/controllers/report.php
Sending        webapp-php/application/controllers/topcrasher.php
Sending        webapp-php/application/libraries/Correlation.php
Adding         webapp-php/application/views/common/correlation.php
Sending        webapp-php/application/views/common/list_topcrashers.php
Adding         webapp-php/application/views/correlation
Adding         webapp-php/application/views/correlation/correlation.php
Sending        webapp-php/application/views/report/do_list.php
Sending        webapp-php/application/views/report/index.php
Sending        webapp-php/application/views/topcrasher/byversion.php
Sending        webapp-php/css/screen.css
Adding         webapp-php/js/jquery/plugins/jquery.girdle.min.js
Adding         webapp-php/js/socorro/correlation.js
Sending        webapp-php/js/socorro/nav.js
Sending        webapp-php/js/socorro/report.js
Adding         webapp-php/js/socorro/report_list.js
Sending        webapp-php/js/socorro/topcrash.js
Transmitting file data ...................
Committed revision 1881.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
(In reply to comment #18)
Filed Bug#554373 and Bug#554374 to track design work once cloud work is done.
Comment on attachment 433822 [details] [diff] [review]
Second attempt at correlation integration

Late with the review but good work.  Did you change/fix a bunch of indenting?  The patch was a bit hard to read.
Attachment #433822 - Flags: feedback?(laura) → feedback+
(In reply to comment #21)
Can you point me to specific areas, I'll fix em.

I "untabified" existing code, to get back to 4 spaces and no tabs.

Maybe the wonkiness is the old tabs + spaces code?

Also: Part of the review was http://github.com/ozten/jquery-girdle-plugin which ends up as the minified JS. Is that where the indenting had issues?

Thanks.
(In reply to comment #22)
> (In reply to comment #21)
> Can you point me to specific areas, I'll fix em.
> 
> I "untabified" existing code, to get back to 4 spaces and no tabs.

This.  Don't worry about fixing it.  :)
Component: Socorro → General
Product: Webtools → Socorro
Flags: in-testsuite?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: