Consolidate Stackwalker/Breakpad Build

RESOLVED FIXED in 101

Status

RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: bramwelt, Assigned: bramwelt)

Tracking

unspecified
x86_64
Linux

Firefox Tracking Flags

(Not tracked)

Details

(Assignee)

Description

4 years ago
It is unclear when stackwalker/breakpad need to be built, and as they are dependant upon each other, they should be merged into a single script. Because breakpad is a project that gets 'built' in the classical sense, breakpad's makefile is smart enough to not recompile it unless it is needed.

This would unify 'make stackwalker', 'make breakpad' and 'scripts/build-breakpad.sh' to a single 'build-breakpad.sh' script, giving preference to the ci system (i.e. default to package breakpad) along with providing a single make target for users, if they need it.
(In reply to Trevor Bramwell :bramwelt from comment #0)
> It is unclear when stackwalker/breakpad need to be built, and as they are
> dependant upon each other, they should be merged into a single script.

Stackwalker lives in the Socorro repo, and depends on breakpad. Breakpad lives in a set of SVN repos.

> Because breakpad is a project that gets 'built' in the classical sense,
> breakpad's makefile is smart enough to not recompile it unless it is needed.

Breakpad is smart enough to do a depend build, but the problem is it's still pretty slow, especially because it uses SVN and has a *ton* of svn:externals (submodules) that must be checked every time.

> This would unify 'make stackwalker', 'make breakpad' and
> 'scripts/build-breakpad.sh' to a single 'build-breakpad.sh' script, giving
> preference to the ci system (i.e. default to package breakpad) along with
> providing a single make target for users, if they need it.

I am unclear if this means you want to get rid of downloading breakpad.tar.gz from the separate CI job, or not :)
Building Breakpad builds both a library and a few example tools (including minidump_stackwalk). The stackwalker tool in the Socorro repository links with the Breakpad library (it's basically a fork of the minidump_stackwalk code). I agree that these could both be built in one command, it's pretty immaterial to the end user.
(Assignee)

Comment 3

4 years ago
After looking closer into this I see the distinction now between `build-breakpad.sh` (which is used by the cron job) and `make stackwalker`.

`make breakpad` is a costly operation, and is ran for us whenever the repo is updated by Jenkins. Thus, it's not required to be run during the build, or any time really as long as Jenkins has an updated copy of `breakpad.tar.gz`.

Since running `make stackwalker` is part of the build, and running it outside of the build is not a common occurance, I would be happy to just remove `make stackwalker` and merge it into `build.sh`.

Comment 5

4 years ago
Commits pushed to master at https://github.com/mozilla/socorro

https://github.com/mozilla/socorro/commit/89b91632f8c066ff9bd1154f0ad19e47e3c3b81f
Merge 'make stackwalker' into bootstrap script.

fix bug 1038358

https://github.com/mozilla/socorro/commit/6fb6274a2217ed1f4331693a8cc5cede9ccc6fe9
Merge pull request #2320 from bramwelt/fix-bug-1038358-consolidate-stackwalker

fix bug 1038358 - Consolidate Stackwalker

Updated

4 years ago
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED

Updated

4 years ago
Target Milestone: --- → 101
You need to log in before you can comment on or make changes to this bug.