Closed
Bug 1225488
Opened 9 years ago
Closed 3 years ago
Fix build process to automatically put openh264 pdb file into FF symbol server to help debug crash
Categories
(Release Engineering :: General, defect)
Release Engineering
General
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: mreavy, Assigned: Callek)
References
Details
+++ This bug was initially created as a clone of Bug #1223926 +++
Ted is doing this for Rui and me in bug 1223926 as a one-off, but we really want to do this automatically as part of the build process. This bug is meant to cover the automation work needed to do that.
Assignee | ||
Comment 1•9 years ago
|
||
ted, our scripts to do openh264 builds are in https://dxr.mozilla.org/mozilla-central/source/testing/mozharness/scripts/openh264_build.py
Admittedly I did some manual editing my last run of the builds I have more info about the process in Bug 1223925
Much of the automation of openH264 build process is actually in https://github.com/cisco/openh264 however I'm keen to assist in making sure the scripts/build-process/etc does whatever is necessary for symbols.
it seems like Cisco cares most about Windows symbols, but if we're doing it I'd love us to get Android (arm/x86) as well as linux and OSX symbols (note we build a 32 bit openh264 and a 64 bit openh264 for osx)
any help you can give is appreciated.
Maire, is this a requirement in any sense for 1.5.2? (If so, that may push back our timeline next week until after US thanksgiving)
Flags: needinfo?(ted)
Flags: needinfo?(mreavy)
Reporter | ||
Comment 2•9 years ago
|
||
Fixing this bug is not a requirement for v1.5.2. I would like to get the pdb file into v1.5.2 as "a one-off" which I think is pretty quick/easy to do. (That's what Ted has offered to do in Bug 1223926.)
Flags: needinfo?(mreavy)
Justin, it would be much appreciated if the plugin symbols can be uploaded and resolved on all the supported platforms. I guess the reason Rui pointed out the PDB file in particular was that we found the build configuration of openh264 was wrong to generate the PDB file. It has been fixed in the master branch, referring to commit https://github.com/cisco/openh264/commit/b5792a09f9c80c0f0bf3a6faacd8883c086817e6.
Assignee | ||
Comment 4•9 years ago
|
||
(In reply to Hank Peng from comment #3)
> Justin, it would be much appreciated if the plugin symbols can be uploaded
> and resolved on all the supported platforms. I guess the reason Rui pointed
> out the PDB file in particular was that we found the build configuration of
> openh264 was wrong to generate the PDB file. It has been fixed in the master
> branch, referring to commit
> https://github.com/cisco/openh264/commit/
> b5792a09f9c80c0f0bf3a6faacd8883c086817e6.
I just sent e-mail asking on if this is a useful thing to uplift to the 1.5.2 branch, in anticipation of our next build.
:ted, what file(s) or commands would you need run for the android, mac, and linux builds of openh264 to get the relevant symbols for Socorro. E.g. how can I help get the most out of the 1.5.2 build I'll be doing next week. (even if the symbol upload is manual)
Comment 5•9 years ago
|
||
We're essentially going to need to add a buildsymbols/uploadsymbols step akin to what our Firefox builds do. I'm poking at the openh264 build right now to see if I can give you an easy command to run.
Are you doing these builds manually, or in buildbot or taskcluster?
Flags: needinfo?(ted)
Comment 6•9 years ago
|
||
Ok, I poked at the openh264 build and this shouldn't be too bad. I submitted a PR to make life slightly easier:
https://github.com/cisco/openh264/pull/2251
With that patch, the packagesymbols.py script from https://gist.github.com/luser/2ad32d290f224782fcfc , and a local dump_syms binary, I can run:
```
packagesymbols.py /path/to/dump_syms `make -s echo-plugin-name`
```
or on Windows:
```
packagesymbols.py /path/to/dump_syms_vc1800.exe `make -s echo-plugin-name OS=msvc`
```
I didn't test on OS X yet, I'll sanity check that.
That produces symbols.zip containing what we want. You can upload that symbols.zip using either the in-tree upload_symbols.py:
https://dxr.mozilla.org/mozilla-central/source/toolkit/crashreporter/tools/upload_symbols.py
or the uploadsymbols.py from that gist. The in-tree one is somewhat more reliable for automation usage. If you're doing builds in Taskcluster, you could alternately just copy the symbols.zip to `artifacts/target.crashreporter-symbols.zip` and list that directory as public/build in your artifacts section and then use the upload_symbols task as a dependent task, like:
http://hg.mozilla.org/users/tmielczarek_mozilla.com/fetch-win32-symbols/file/tip/task.json#l51
Otherwise you'll need a valid Socorro auth token (the RelEng builders should all have one in place already for uploading Firefox symbols).
One thing I noticed is that the non-Windows builds don't build with debug symbols, so we only get export symbols. I'll open an issue on GitHub for that.
Comment 7•9 years ago
|
||
Opened https://github.com/cisco/openh264/issues/2252 for getting debug symbols on non-Windows.
Hi Ted, thanks for your PR2251 which we have merged into the master branch and would like to pick it into the v1.5.2-Firefox39 branch.
Also thanks for raising the issue https://github.com/cisco/openh264/issues/2252. However, we don't have anyone in the OpenH264 who is familiar with the build configuration to resolve this issue. Could you please submit another PR to help fix it? Thanks.
Comment 9•9 years ago
|
||
I can fix it, it shouldn't be very complicated.
Comment 10•9 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #9)
> I can fix it, it shouldn't be very complicated.
Much appreciated. Looking forward to your fix.
Comment 11•9 years ago
|
||
There are 3 commits in v1.5.2-Firefox39 branch trying to generate the debug symbols on non-windows platforms:
https://github.com/cisco/openh264/commit/48002c809193e31e8db365ae1336e08ce4f08bfa
https://github.com/cisco/openh264/commit/ac9ca8f879d8226a53ff69e9053ba93ee58772be
https://github.com/cisco/openh264/commit/778e87520e656410d102f642317365ee684cd270
When running the command 'make DEBUGSYMBOLS=True plugin', two libraries will be generated. libgmpopenh264.so(dylib) is the one containing symbols, and libgmpopenh264_stripped.so(dylib) is the one without debug symbols. We are not sure it this could meet the requirement.
Ted, hope you could help review the commits and update the your build script. Thanks.
Flags: needinfo?(ted)
Comment 12•9 years ago
|
||
The android hang fix has been put into v1.5.2. I'd like to have the v1.5.2 released soon. If the symbol generation is OK, the v1.5.2 could include it as well. Otherwise, will we release v1.5.2 first, Maire?
Flags: needinfo?(mreavy)
Reporter | ||
Comment 13•9 years ago
|
||
Thanks, Hank. I believe there's time to get the symbol generation in. We're all at Orlando this week and next week is a Firefox release week. (It's a bad idea to release the browser and the plugin during the same week -- unless it's critical to do so.)
I'm talking with Justin (Callek) and Randell (Jesup) now to come up with a reasonable timeline for testing and release of v1.5.3.
Flags: needinfo?(mreavy)
Assignee | ||
Comment 14•9 years ago
|
||
(In reply to Hank Peng from comment #11)
> There are 3 commits in v1.5.2-Firefox39 branch trying to generate the debug
> symbols on non-windows platforms:
> https://github.com/cisco/openh264/commit/
> 48002c809193e31e8db365ae1336e08ce4f08bfa
> https://github.com/cisco/openh264/commit/
> ac9ca8f879d8226a53ff69e9053ba93ee58772be
> https://github.com/cisco/openh264/commit/
> 778e87520e656410d102f642317365ee684cd270
>
> When running the command 'make DEBUGSYMBOLS=True plugin', two libraries will
> be generated. libgmpopenh264.so(dylib) is the one containing symbols, and
> libgmpopenh264_stripped.so(dylib) is the one without debug symbols. We are
> not sure it this could meet the requirement.
>
> Ted, hope you could help review the commits and update the your build
> script. Thanks.
ted, while you have the n-i still open, can you confirm if I needed to do this new `make` magic for non-windows to get the symbols, and if so if I should have shipped the _stripped as if it was the s/_stripped// version to Cisco. And if the lack of me doing this invalidates the attempt on my end to get non-windows symbols into our symbol server?
Comment 15•9 years ago
|
||
It's...a little weird. The make command I gave you should work with that new stuff. However! You'll have to ship the _stripped version in this case otherwise the binaries will be much larger than they need to be.
Flags: needinfo?(ted)
Comment 16•9 years ago
|
||
I am very sorry that we had a mistake here. As the openh264 v1.5.3 has been released, We will add a note in our backlog or you can give a pull request to openh264 master branch. So it will be OK in next release.
Assignee | ||
Comment 17•9 years ago
|
||
To be clear...
<Callek> ted: your answer confused me more in Bug 1225488 ...
<ted> Callek: sorry!
<ted> Callek: the make command will work fine for non-windows, and produce useful symbols
<ted> Callek: however! the way they implemented that is weird
<ted> and means that you'd have to ship the _stripped version
<Callek> ted: rephrasing attempt: so the way we did the symbols in the existing case was fine.... that is the `packagesymbols.py .. <package_name>` but if we use THEIR new way, we have to ship the _stripped version because their stuff will be much larger?
<ted> yes
So while this could use some fixing up, 1.5.3 is fine.
Comment 18•9 years ago
|
||
Hi, we have changed the strange debug symbols make option in openh264 master and latest v1.6 branch. Now when make the openh264 with "BUILDTYPE=Release DEBUGSYMBOLS=True", it will output libopenh264.a, libopenh264.so, libopenh264_debug_symbols.a and libopenh264_debug_symbols.so together. Please modify your scripts if you want to use this make option.
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → bugspam.Callek
Comment 19•7 years ago
|
||
While working on bug 1380605 (openh264 v1.7.1) our scripts generated symbol archives which contained gmpopenh264.pdb on windows, libgmpopenh264.dylib on mac, and libgmpopenh264.so on linux/android (as well as .sym files for all).
Updated•7 years ago
|
Component: General Automation → General
Comment 20•3 years ago
|
||
Backlog cleanup.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•