Firefox crashes when built with PGO/gcc-8.2

RESOLVED INVALID

Status

()

RESOLVED INVALID
6 months ago
3 months ago

People

(Reporter: stransky, Unassigned)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(firefox64 affected)

Details

(URL)

Attachments

(1 attachment)

(Reporter)

Description

6 months ago
PGO build of Firefox trunk (gcc-8.2.1-2.fc29.x86_64) crashes at start with:

pure virtual method called
terminate called without an active exception
Redirecting call to abort() to mozalloc_abort

==9224== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==9224==    at 0x488ADED: raise (in /usr/lib64/libpthread-2.28.so)
==9224==    by 0xA5AB78E: nsProfileLock::FatalSignalHandler(int, siginfo_t*, void*) (nsProfileLock.cpp:177)
==9224==    by 0xA8BD387: WasmFaultHandler(int, siginfo_t*, void*) (WasmSignalHandlers.cpp:1387)
==9224==    by 0x488AF6F: ??? (in /usr/lib64/libpthread-2.28.so)
==9224==    by 0x10D7E3: AnnotateMozCrashReason (Assertions.h:40)
==9224==    by 0x10D7E3: mozalloc_abort (mozalloc_abort.cpp:35)
==9224==    by 0x10D7B0: abort (mozalloc_abort.cpp:82)
==9224==    by 0x492FE9A: ??? (in /usr/lib64/libstdc++.so.6.0.25)
==9224==    by 0x49362FB: ??? (in /usr/lib64/libstdc++.so.6.0.25)
==9224==    by 0x4936356: std::terminate() (in /usr/lib64/libstdc++.so.6.0.25)
==9224==    by 0x49371A4: __cxa_pure_virtual (in /usr/lib64/libstdc++.so.6.0.25)
==9224==    by 0xA9B1475: ~nsCOMPtr_base (nsCOMPtr.h:313)
==9224==    by 0xA9B1475: ~nsCOMPtr (nsCOMPtr.h:369)
==9224==    by 0xA9B1475: NS_GetWeakReference(nsISupports*, nsresult*) (nsWeakReference.cpp:99)
==9224==    by 0xA9B3CA6: do_GetWeakReference (nsIWeakReferenceUtils.h:58)
==9224==    by 0xA9B3CA6: AddObserver (nsObserverList.cpp:27)
==9224==    by 0xA9B3CA6: nsObserverService::AddObserver(nsIObserver*, char const*, bool) (nsObserverService.cpp:234)

Comment 2

6 months ago
This is consequence, but root cause would be some memory corruption:

==10543== Invalid read of size 8
==10543==    at 0xA9A1D39: operator() (nsCOMPtr.cpp:27)
==10543==    by 0xA9A1D39: nsCOMPtr_base::assign_from_qi_with_error(nsQueryInterfaceWithError const&, nsID const&) (nsCOMPtr.cpp:62)
==10543==    by 0xA9B1450: nsCOMPtr (nsCOMPtr.h:550)
==10543==    by 0xA9B1450: NS_GetWeakReference(nsISupports*, nsresult*) (nsWeakReference.cpp:99)
==10543==    by 0xA9B3CA6: do_GetWeakReference (nsIWeakReferenceUtils.h:58)
...

I can try to build Firefox with AddressSanitizer, but not with PGO.

Updated

4 months ago
Component: Build Config → General
Product: Toolkit → Firefox Build System
(Reporter)

Comment 3

3 months ago
Fedora is also going to use clang so I don't need this fixed any more.
Component: General → XPCOM
Product: Firefox Build System → Core
(Reporter)

Comment 4

3 months ago
It's GCC bug - https://gcc.gnu.org/PR88561
Status: NEW → RESOLVED
Last Resolved: 3 months ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.