Closed Bug 1519475 Opened 4 years ago Closed 4 years ago

redo how we build breakpad client

Categories

(Socorro :: General, task, P2)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: willkg, Assigned: willkg)

Details

Attachments

(2 files)

Currently, we use a taskcluster task to build the breakpad client and upload it to a public place. Then the scripts/build-stackwalker.sh script will pull the client binary down from the public place rather than build it. This saves a lot of development and CI time since we rarely update the breakpad client.

Getting the scopes required to run the taskcluster task is tough. Seems like we either need to redo how all that works or ditch taskcluster for a different solution. Currently, Will can't run the taskcluster task.

We don't have to use taskcluster. We can build the breakpad client using the Socorro app Docker image. So theoretically, we can build and cache it without using taskcluster.

This bug covers figuring out a new solution and implementing it.

Making this a P2 because the current situation is problematic.

Priority: -- → P2

Relatedly, in https://bugzilla.mozilla.org/show_bug.cgi?id=1518599#c4 Dustin says:

Yep, gecko-misc is limited to being used from the builds of the Firefox source.
github-worker is probably a good choice here, and if not then we'd create a
dedicated socorro worker type. Your account should already have github-worker scopes.

Even with that, I think it's better to un-taskclusterize this.

Grabbing this to work on this week.

Assignee: nobody → willkg
Status: NEW → ASSIGNED

PR 4774 changed the worker to github-worker. That made it so that I could run the taskcluster task and build the binary and that makes figuring this out less urgent.

Mike suggested building it in CI and having CI upload the binary somewhere. I like that idea--we'd need somewhere to park it and then give CI credentials to park it there.

Another idea is to have a script stored in the socorro repo that takes a set of credentials, builds the breakpad client, and uploads it to an AWS S3 bucket or a GCS bucket.

As I understand it, the compelling reason to do caching before was that it required a certain gcc and people ran Socorro locally and the whole thing was fiddly. Now we run Socorro in a Docker image and it's easier to manage and less fiddly so the only reason to do the pre-built binary is to save time in dev, CI, and deploys.

I tried building the Docker image with no cache and got these timings:

  • using pre-built binary: 4m26s
  • building breakpad client: 5m53s

Building the breakpad client adds a minute and a half to the build. It's probably similar in other environments. I don't think that's worth the complexity here.

Given that, I'm just going to nix the pre-built binary. It simplifies a lot of things including the process of updating the breakpad client. If it's onerous, we can write up a new bug and fix it there.

Commits pushed to master at https://github.com/mozilla-services/socorro

https://github.com/mozilla-services/socorro/commit/28efa404099b5b9edf5d2bf3888be5984a64b23e
fix bug 1519475: drop use of pre-built breakpad client binary

The breakpad client binary was being built using a taskcluster task
that required scopes that I couldn't get. I was able to change the
worker so I could run the task, but it only saves a minute and a
half from build times. I don't think that warrants the additional
complexity maintaining a binary required so this nixes that and
now always builds breakpad client during build.

https://github.com/mozilla-services/socorro/commit/a2c2d9d0e1ac00b66b9325183869bfce4bce8dff
Merge pull request #4775 from willkg/1519475-bc-2

fix bug 1519475: drop use of pre-built breakpad client binary
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED

(In reply to Will Kahn-Greene [:willkg] ET needinfo? me from comment #5)

Building the breakpad client adds a minute and a half to the build. It's probably similar in other environments. I don't think that's worth the complexity here.

Given that, I'm just going to nix the pre-built binary. It simplifies a lot of things including the process of updating the breakpad client. If it's onerous, we can write up a new bug and fix it there.

👍

You need to log in before you can comment on or make changes to this bug.