Socorro: 2018q3 review
Summary
Socorro is the crash ingestion pipeline for Mozilla's products like Firefox. When Firefox crashes, the Breakpad crash reporter asks the user if the user would like to send a crash report. If the user answers "yes!", then the Breakpad crash reporter collects data related to the crash, generates a crash report, and submits that crash report as an HTTP POST to Socorro. Socorro saves the crash report, processes it, and provides an interface for aggregating, searching, and looking at crash reports.
2018q3 was a busy quarter. This blog post covers what happened.
Staff changes in 2018q3
At the beginning of 2018q3, there were two engineers and two interns. Ced and Alexis ended their internship in August. Mike got slid over to a tiger team which he'll be on until November. For most of September, it was just me.
Here's a handy table showing engineering staff over time:
Month |
Engineering Team |
---|---|
July |
Mike, Alexis, Ced, me |
August |
Mike (part time), Alexis (until August 10th), Ced (until August 10th), me |
September |
me |
One person isn't a critical mass for a project, so we had to make changes in development process and priorities. It's been tough. If you want to talk more about that, toss me an email, ping me on IRC, or catch me at the All Hands in December.
Highlights in 2018q3
We accomplished a lot in 2018 quarter 3.
-
Lots of improvements to Socorro-style signature generation:
Extracted Socorro signature generation into a standalone library. See my blog post on socorro-siggen.
Fixed issues with C++ prefixes and types.
Added handling for C++ cv and ref qualifiers.
Built better support for Rust frames.
Improved documentation for signature generation.
Reworked Crash Stats to support new products that don't follow the same build methodologies as Firefox. That work allowed us to add GeckoView, Focus and FirefoxReality.
-
Changed the throttling code to reduce the number of crash reports coming into Socorro.
Socorro no longer accepts crash reports for unsupported products.
Socorro no longer accepts crash reports that it doesn't plan to process.
Previously, Socorro was saving roughly 70% of incoming crashes. Now it's saving roughly 20% and all those crashes are searchable in the Crash Stats interface. Socorro is no longer saving crash data that we don't know anything about.
Redesigned the about:crashes page to fix a bunch of UI/UX issues.
Removed ADI and all ADI-requiring things.
-
Improvements to make Crash Stats more service-y:
Added a bunch of fields to supersearch.
Removed Postgres from the processor. This is a big deal because it was one of the things blocking a processor rewrite.
Audited who had access and removed access from a bunch of people. Auditing now happens monthly.
Made a lot of progress with transitioning to Python 3. Linting is fine. Fixing code is ongoing. Dropped some libraries that don't support Python 3 or were unmaintained. Vendored Crontabber.
Redid Docker infrastructure so we have a single Docker image that all the services use. This simplified a lot of things and makes Socorro development easier.
Thank you!
Thank you to Alexis and Ced! I hope you got as much out of your internship experiences as you could have. Thank you for being part of the team and the work you did!
Thank you to Ted, Kartikaya, Andrew, Jeff, Nicholas, Nathan, and others for helping to guide fixing signature generation to work better with Rust!
Thank you to Chris, Snorp, and others for helping to guide new product support on Socorro!
Thank you to Marcia, Ted, Liz, Philipp, dbaron, Gabriele, and others for helping to guide the reduction in crash report accepting work!
Bugzilla and GitHub stats for 2018q3
Quarter 2018q3 (2018-07-01 -> 2018-09-30) ========================================= Bugzilla ======== Bugs created: 149 Creators: 21 Will Kahn-Greene [:willkg] ET : 85 Alexis Deschamps [:alexisdesch : 13 Marcia Knous [:marcia - needin : 5 Kartikaya Gupta : 4 Calixte Denizet (:calixte) : 4 Michael Kelly [:mkelly,:Osmose : 3 Chris Peterson [:cpeterson] : 3 Jan Andre Ikenmeyer [:darkspir : 3 Brian Pitts : 2 [:philipp] : 2 Ted Mielczarek [:ted] [:ted.mi : 2 Tim Smith [:tdsmith] : 1 Daosheng Mu[:daoshengmu] : 1 Wayne Mery (:wsmwk) : 1 Liz Henry (:lizzard) (needinfo : 1 Rob Wu [:robwu] : 1 Randell Jesup [:jesup] : 1 Hiroyuki Ikezoe (:hiro) : 1 Cristi Fogel [:cfogel] : 1 Jeff Muizelaar [:jrmuizel] : 1 Brian Hackett (:bhackett) : 1 Bugs resolved: 173 INCOMPLETE : 2 WONTFIX : 16 FIXED : 138 WORKSFORME : 2 DUPLICATE : 4 INVALID : 9 Resolvers: 21 Will Kahn-Greene [:willkg] ET : 136 Brian Pitts : 8 Peter Bengtsson [:peterbe] : 6 Miles Crabill [:miles] [also m : 5 Alexis Deschamps [:alexisdesch : 5 Michael Kelly [:mkelly,:Osmose : 3 Lonnen : 2 kats : 1 Chris Peterson [:cpeterson] : 1 Sotaro Ikeda [:sotaro] : 1 Stephen A Pohl [:spohl] : 1 mstange : 1 Ted Mielczarek [:ted] [:ted.mi : 1 mozillamarcia.knous : 1 mozilla+bugcloser : 1 Commenters: 76 willkg : 589 mozilla+bugcloser : 104 peterbe : 74 bpitts : 52 lonnen : 22 adeschamps : 21 miles : 20 mkelly : 17 mozillamarcia.knous : 17 ted : 16 mcastelluccio : 14 dmu : 13 madperson : 10 jan : 10 vseerror : 9 cpeterson : 9 spohl.mozilla.bugs : 8 kats : 7 cdenizet : 6 and others... Tracker bugs: 4 1346883: [tracker] remove postgres usage from processor 1478110: [tracker] stop saving crash data we aren't processing 1478351: [tracker] support rust 1478353: [tracker] support new products on Socorro Statistics Youngest bug : 0.0d: 1473935: grant :tdsmith access to rawdumps Average bug age : 115.4d Median bug age : 6.0d Oldest bug : 1295.0d: 1140930: Crash Reports SUMO search field is outdated, li... GitHub ====== mozilla-services/antenna: 12 prs Committers: willkg : 12 ( +719, -847, 21 files) Total : ( +719, -847, 21 files) Most changed files: antenna/throttler.py (7) tests/unittest/test_throttler.py (5) tests/unittest/test_breakpad_resource.py (3) antenna/breakpad_resource.py (2) tests/unittest/test_s3_crashstorage.py (2) requirements/constraints.txt (2) requirements/default.txt (2) tests/unittest/conftest.py (1) docs/requirements.txt (1) docs/breakpad_reporting.rst (1) Age stats: Youngest PR : 0.0d: 277: bug 1474037: add support for FirefoxReality Average PR age : 1.3d Median PR age : 0.0d Oldest PR : 16.0d: 268: fix bug 1480936: change throttle default to REJECT mozilla-services/socorro: 115 prs Committers: willkg : 99 (+11830, -10498, 265 files) AlexisDeschamps : 7 ( +7613, -2457, 72 files) pyup-bot : 3 ( +403, -337, 3 files) jcristau : 1 ( +1, -1, 1 files) sotaroikeda : 1 ( +1, -0, 1 files) lonnen : 1 ( +53, -4402, 39 files) cpeterso : 1 ( +1, -0, 1 files) Osmose : 1 ( +6295, -589, 20 files) ceddy-cedd : 1 ( +47, -18, 6 files) Total : (+26244, -18302, 361 files) Most changed files: webapp-django/crashstats/crashstats/models.py (11) socorro/signature/rules.py (10) webapp-django/crashstats/settings/base.py (10) socorro/processor/mozilla_transform_rules.py (9) webapp-django/crashstats/crashstats/utils.py (8) webapp-django/crashstats/crashstats/views.py (8) socorro/external/es/super_search_fields.py (8) socorro/signature/tests/test_utils.py (7) socorro/signature/utils.py (7) socorro/signature/tests/test_rules.py (7) Age stats: Youngest PR : 0.0d: 4624: fix bug 1494995: show graphics vendor/adapter n... Average PR age : 0.8d Median PR age : 0.0d Oldest PR : 18.0d: 4506: fix bug 1344864: added startup stats to the sig... mozilla-services/socorro-pigeon: 0 prs All repositories: Total merged PRs: 127 Contributors ============ [:philipp] acrichton adityamotwani adrian aklotz Alexis Deschamps [:alexisdeschamps] aryx.bugmail ayumiqmazaky bbirtles bewu bhackett1024 Brian Hackett (:bhackett) Brian Pitts Calixte Denizet (:calixte) ceddy-cedd chartjes Chris Peterson [:cpeterson] continuation cpeterson Cristi Fogel [:cfogel] Daosheng Mu[:daoshengmu] dave.hunt dbaron dbrown ddurst dmu dveditz ehsan fbraun hikezoe Hiroyuki Ikezoe (:hiro) hkirschner Jan Andre Ikenmeyer [:darkspirit] jcristau Jeff Muizelaar [:jrmuizel] John99-bugs jschneider kairo Kartikaya Gupta (email:kats@mozilla.com) kats kbrosnan larsberg Liz Henry (:lizzard) (needinfo? me) lonnen Marcia Knous [:marcia - needinfo? me] matt.woodrow mbrandt mcastelluccio merwin mh+mozilla Michael Kelly [:mkelly,:Osmose] miket Miles Crabill [:miles] [also mcrabill mstange n.nethercote ncsoregi nfroyd nthomas orangefactor pbone Peter Bengtsson [:peterbe] ptheriault pulgasaur Randell Jesup [:jesup] rares.doghi rbarker rkothari Rob Wu [:robwu] sledru Sotaro Ikeda [:sotaro] Stephen A Pohl [:spohl] stephen.donner susingh svoisen tdsmith Ted Mielczarek [:ted] [:ted.mielczarek] Tim Smith 👨🔬 [:tdsmith] viveknegi1 vnegi vseerror Wayne Mery (:wsmwk) Will Kahn-Greene [:willkg] ET needinfo? me willkg yor