Closed Bug 684500 Opened 10 years ago Closed 10 years ago

Remove PGO bug workaround when using MSVC 2010 everywhere


(Toolkit :: Crash Reporting, defect)

Not set





(Reporter: jdm, Unassigned)




(1 file)

Bug 581341 is adding a pragma that turns off optimization for the new EscapeAnnotation function in nsExceptionHandler.cpp, as doing a PGO build without it reliably produces a build that crashes in SVG painting code. Note that this occurs in the build that is to be profiled; we never reach the stage of having an optimized build. Jeff and I tracked it down to a function where eax was not being filled with the proper return value, and instead held a pointer to the code segment, so the caller had the wrong value returned. This occurred in both 2005 and 2008; I'm hoping it's fixed by 2010.
I do PGO builds with MSVC 2010, but with the Crash Reporter disabled (for obvious reasons). I can try one with it enabled to see what happens if you like.
That would be super. I'll put together a patch when bug 581341 lands.
It's all yours, Ryan.
I guess this is a bad sign?

c:\mozbuild\mozilla-central\$ OBJDIR=c:/mozbuild/mozilla-central/objdir-fx JARLOG_DIR=c:/mozbuild/mozilla-central/objdir-fx/jarlog/en-US python c:/mozbuild/mozilla-central/objdir-fx/_profile/pgo/
args: ['c:\\mozbuild\\mozilla-central\\objdir-fx\\dist\\firefox\\firefox.exe', '-no-remote', '-profile', 'c:\\mozbuild\\mozilla-central\\objdir-fx\\_profile\\pgo\\pgoprofile/', 'http://localhost:8888/index.html']
INFO | | Application pid: 2368
TEST-UNEXPECTED-FAIL | | Exited with code -1073741819 during test run
INFO | | Application ran for: 0:00:04.143000
INFO | | Reading PID log: c:\users\ryan\appdata\local\temp\tmpkp2ftcpidlog
PROCESS-CRASH | | application crashed (minidump found)
Crash dump filename: c:\mozbuild\mozilla-central\objdir-fx\_profile\pgo\pgoprofile\minidumps\36170e04-2dae-4566-b86c-03db7e9cf267.dmp
No symbols path given, can't process dump.
Neither MINIDUMP_STACKWALK nor MINIDUMP_STACKWALK_CGI is set, can't process dump.
c:\mozbuild\mozilla-central\ command 'OBJDIR=c:/mozbuild/mozilla-central/objdir-fx JARLOG_DIR=c:/mozbuild/mozilla-central/objdir-fx/jarlog/en-US python c:/mozbuild/mozilla-central/objdir-fx/_profile/pgo/' failed, return code -1073741819
c:\mozbuild\mozilla-central\ command 'c:/mozbuild/python/python.exe c:/mozbuild/mozilla-central/build/pymake/pymake/../ -f c:/mozbuild/mozilla-central/ profiledbuild' failed, return code 2
Yep! Spooky how this bug has persisted through three MSVC versions D:
Closed: 10 years ago
Resolution: --- → WONTFIX
File a Microsoft Connect issue on it? I know producing testcases is hard. :-/
Ryan, is this PGO crash still reproducible in VS2015? As of bug 1186064, we no longer support building with VS < 2015.
Depends on: 1186064
No longer depends on: msvc2010
Flags: needinfo?(ryanvm)
OS: Mac OS X → Windows
Hardware: x86 → All
I don't know, I stopped building with PGO locally awhile ago. Probably best to just push to Try with |mk_add_options MOZ_PGO=1| added to build/mozconfig.common.override and see what happens.
Flags: needinfo?(ryanvm)
Thanks. Looks like we're stuck with this #ifdef for a while longer. Enabling PGO, with or without reverting the crash reporter #ifdefs, blows up on Try:

The taskcluster job fails and the debug build (PGO but not non-PGO!) asserts in WindowsDllBlocklist.cpp:

Assertion failure: !sUser32BeforeBlocklist, at c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/mozglue/build/WindowsDllBlocklist.cpp:769
You need to log in before you can comment on or make changes to this bug.