Closed Bug 1038358 Opened 10 years ago Closed 10 years ago

Consolidate Stackwalker/Breakpad Build

Categories

(Socorro :: Infra, task)

x86_64
Linux
task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bramwelt, Assigned: bramwelt)

References

Details

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.
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`.
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
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → 101
You need to log in before you can comment on or make changes to this bug.