[ <-- Back ]
PR bug 20110406 [reopened-devonly]
Crash condition on certain pages when trying to print or print preview.
Reporters: Kevin Lubick, Guy Simmons, Stephen Cohen
Affects the following:
Functions: File -> Print, File -> Print preview.
Builds: All 4.0
dev builds except x64. Released builds don't have this crash condition (trial&error).
Cause:
Compiler issue when using PGO combined with SSE2. Also possibly related to Bug 647792
Details: The
linking phase when combining PGO with SSE2 causes memory
access errors in certain conditions. This
is (yet another) compiler bug in MSVC :/ -- and it seems to be rather persistent and random, some builds are successful, hit-and-miss.
As a result, specific conditions present in collecting the page data to
prepare for printing results in an invalid memory access (usually in
protected system memory), crashing the browser or closing it to desktop silently.
Solution: Re-build, disabling SSE2 specifically for affected modules.
The consequence will be a performance hit for the functions with SSE2
instructions disabled. On the whole, this should not be significant;
vector calculations are usually not needed for printing.
Implementation: 1) Find the affected modules.
Progress: ruled out so far: JS, jemalloc, mozalloc
Likely candidates: embedding/components/printinggui and /layout/printing/* (next up)
2) Edit makefile with CXXFLAGS := $(CXXFLAGS:arch:SSE2=arch:SSE) or even filter-out if SSE is a problem as well.
[ <-- Back ]
|