Closed Bug 1893502 Opened 10 months ago Closed 10 months ago

[@ google_breakpad::ElfClassBuildIDNoteIdentifier] | Profile initialization

Categories

(Toolkit :: Crash Reporting, defect)

defect

Tracking

()

RESOLVED INVALID

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: crash, regression)

Crash Data

[task 2024-04-25T16:20:52.415Z] + ./mach python build/pgo/profileserver.py --binary obj-firefox/dist/firefox/firefox
[task 2024-04-25T16:21:03.209Z] mozcrash INFO | Copy/paste: /builds/worker/fetches/minidump-stackwalk/minidump-stackwalk --symbols-url=https://symbols.mozilla.org/ --cyborg=/tmp/tmp1ljn4w3g/3c91d7e3-6100-891d-09bc-c80a5d9fc625.trace /tmp/tmpz4q0p_w3/minidumps/3c91d7e3-6100-891d-09bc-c80a5d9fc625.dmp /builds/worker/fetches
[task 2024-04-25T16:21:10.109Z] mozcrash INFO | Saved minidump as /builds/worker/artifacts/3c91d7e3-6100-891d-09bc-c80a5d9fc625.dmp
[task 2024-04-25T16:21:10.109Z] mozcrash INFO | Saved app info as /builds/worker/artifacts/3c91d7e3-6100-891d-09bc-c80a5d9fc625.extra
[task 2024-04-25T16:21:10.109Z] started SP3 server on port 8000
[task 2024-04-25T16:21:10.109Z] Firefox exited with code 11 during profile initialization
[task 2024-04-25T16:21:10.109Z] Firefox output (/builds/worker/artifacts/profile-run-1.log):
[task 2024-04-25T16:21:10.109Z] console.error: (new Error("Unexpected content-type \"text/plain;charset=US-ASCII\"", "resource://services-settings/Utils.sys.mjs", 406))
[task 2024-04-25T16:21:10.109Z] ExceptionHandler::GenerateDump cloned child 222
[task 2024-04-25T16:21:10.109Z] ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[task 2024-04-25T16:21:10.109Z] ExceptionHandler::SendContinueSignalToChild sent continue signal to child
[task 2024-04-25T16:21:10.109Z] 
[task 2024-04-25T16:21:10.109Z] mozcrash checking /tmp/tmpz4q0p_w3/minidumps for minidumps...
[task 2024-04-25T16:21:10.109Z] PROCESS-CRASH | None [@ google_breakpad::ElfClassBuildIDNoteIdentifier] | Profile initialization
[task 2024-04-25T16:21:10.109Z] Crash dump filename: /tmp/tmpz4q0p_w3/minidumps/3c91d7e3-6100-891d-09bc-c80a5d9fc625.dmp
[task 2024-04-25T16:21:10.109Z] Process type: main
[task 2024-04-25T16:21:10.109Z] Process pid: 184
[task 2024-04-25T16:21:10.109Z] Operating system: Linux
[task 2024-04-25T16:21:10.109Z]                   5.4.0-1106-gcp #115~18.04.1-Ubuntu SMP Mon May 22 20:46:39 UTC 2023
[task 2024-04-25T16:21:10.109Z] CPU: x86
[task 2024-04-25T16:21:10.109Z]      GenuineIntel family 6 model 85 stepping 7
[task 2024-04-25T16:21:10.109Z]      16 CPUs
[task 2024-04-25T16:21:10.109Z] Linux Ubuntu 18.04 - bionic (Ubuntu 18.04.6 LTS)
[task 2024-04-25T16:21:10.109Z] 
[task 2024-04-25T16:21:10.109Z] Crash reason:  SIGSEGV / SEGV_MAPERR
[task 2024-04-25T16:21:10.109Z] Crash address: 0x13d6e62c
[task 2024-04-25T16:21:10.109Z] Process uptime: not available
[task 2024-04-25T16:21:10.109Z] 
[task 2024-04-25T16:21:10.109Z] Thread 15 BHMgr Processor (crashed)
[task 2024-04-25T16:21:10.109Z]  0  libxul.so!google_breakpad::ElfClassBuildIDNoteIdentifier(void const*, unsigned int, google_breakpad::wasteful_vector<unsigned char>&) [file_id.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 73 + 0x0]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe98599e0    esp = 0xd3ffa6c0    ebp = 0xd3ffa6d8    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0x13d6e624    edi = 0xaa7281c3    eax = 0x00000000    ecx = 0xdea4b1e8
[task 2024-04-25T16:21:10.109Z]      edx = 0x00000001 eflags = 0x00210203
[task 2024-04-25T16:21:10.109Z]     Found by: given as instruction pointer in context
[task 2024-04-25T16:21:10.109Z]  1  libxul.so!google_breakpad::FindElfBuildIDNote(void const*, google_breakpad::wasteful_vector<unsigned char>&) [file_id.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 103]
[task 2024-04-25T16:21:10.109Z]     Found by: inlining
[task 2024-04-25T16:21:10.109Z]  2  libxul.so!google_breakpad::FileID::ElfFileIdentifierFromMappedFile(void const*, google_breakpad::wasteful_vector<unsigned char>&) [file_id.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 149 + 0x9f]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe98592d3    esp = 0xd3ffa6e0    ebp = 0xd3ffa758    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xd3ffa738    edi = 0x00000000
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z]  3  libxul.so!google_breakpad::FileID::ElfFileIdentifier(google_breakpad::wasteful_vector<unsigned char>&) [file_id.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 161 + 0x8]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe9859709    esp = 0xd3ffa760    ebp = 0xd3ffa788    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xd3ffa774    edi = 0xd3ffa91c
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z]  4  libxul.so!getBreakpadId(char const*) [shared-libraries-linux.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 92]
[task 2024-04-25T16:21:10.109Z]     Found by: inlining
[task 2024-04-25T16:21:10.109Z]  5  libxul.so!SharedLibraryAtPath(char const*, unsigned long, unsigned long, unsigned long) [shared-libraries-linux.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 128 + 0x7c]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe9069ea7    esp = 0xd3ffa790    ebp = 0xd3ffa958    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xd3ffa7c0    edi = 0xd3ffa91c
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z]  6  libxul.so!SharedLibraryInfo::GetInfoForSelf() [shared-libraries-linux.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 254 + 0x1c]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe906908e    esp = 0xd3ffa960    ebp = 0xd3ffdc18    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xc44d3000    edi = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z]  7  libxul.so!mozilla::ReadModuleInformation(mozilla::HangStack&) [HangDetails.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 365 + 0xe]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe931896d    esp = 0xd3ffdc20    ebp = 0xd3ffdf78    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0x00000002    edi = 0x00000000
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z]  8  libxul.so!mozilla::ProcessHangStackRunnable::Run() [HangDetails.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 709 + 0x8]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe931cdfa    esp = 0xd3ffdf80    ebp = 0xd3ffdfa8    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xe931cda0    edi = 0xc70821c0
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z]  9  libxul.so!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 1193 + 0x1a]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe14a0c8f    esp = 0xd3ffdfb0    ebp = 0xd3ffe0b8    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xe931cda0    edi = 0xc70821c0
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z] 10  libxul.so!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 480 + 0x10]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe14a7db7    esp = 0xd3ffe0c0    ebp = 0xd3ffe0e8    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xf7848800    edi = 0xe14a0090
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z] 11  libxul.so!mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [MessagePump.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 330 + 0x1a]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe24218fd    esp = 0xd3ffe0f0    ebp = 0xd3ffe128    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xf0fd08b0    edi = 0xd3ffe1a0
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z] 12  libxul.so!MessageLoop::RunInternal() [message_loop.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 370]
[task 2024-04-25T16:21:10.109Z]     Found by: inlining
[task 2024-04-25T16:21:10.109Z] 13  libxul.so!MessageLoop::RunHandler() [message_loop.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 363]
[task 2024-04-25T16:21:10.109Z]     Found by: inlining
[task 2024-04-25T16:21:10.109Z] 14  libxul.so!MessageLoop::Run() [message_loop.cc:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 345 + 0x20]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe231d00a    esp = 0xd3ffe130    ebp = 0xd3ffe168    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xe2421670    edi = 0xf0fd08b0
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z] 15  libxul.so!nsThread::ThreadFunc(void*) [nsThread.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 370 + 0x7]
[task 2024-04-25T16:21:10.109Z]      eip = 0xe149bb9f    esp = 0xd3ffe170    ebp = 0xd3ffe298    ebx = 0xedbbe4f0
[task 2024-04-25T16:21:10.109Z]      esi = 0xd3ffe1a0    edi = 0xf0fcf240
[task 2024-04-25T16:21:10.109Z]     Found by: call frame info
[task 2024-04-25T16:21:10.109Z] 16  libnspr4.so!_pt_root [ptthread.c:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 201 + 0x2f]
[task 2024-04-25T16:21:10.109Z]      eip = 0xf6fdb321    esp = 0xd3ffe2a0    ebp = 0xd3ffe2d8    ebx = 0xf6fe3960
[task 2024-04-25T16:21:10.109Z]      esi = 0xe149ba50    edi = 0xf0fcf240
[task 2024-04-25T16:21:10.110Z]     Found by: call frame info
[task 2024-04-25T16:21:10.110Z] 17  firefox-bin!set_alt_signal_stack_and_start(PthreadCreateParams*) [pthread_create_interposer.cpp:3f11bbc59b0b7e90a6944927baafb61b7d190774 : 81 + 0x18]
[task 2024-04-25T16:21:10.110Z]      eip = 0x56632e0f    esp = 0xd3ffe2e0    ebp = 0xd3ffe358    ebx = 0x5673bf44
[task 2024-04-25T16:21:10.110Z]      esi = 0xf6fdb0e0    edi = 0xf1055000
[task 2024-04-25T16:21:10.110Z]     Found by: call frame info
[task 2024-04-25T16:21:10.110Z] 18  libpthread.so.0 + 0x63bc
[task 2024-04-25T16:21:10.110Z]      eip = 0xf7eab3bd    esp = 0xd3ffe360    ebp = 0xd3ffe428    ebx = 0x00000000
[task 2024-04-25T16:21:10.110Z]      esi = 0xd3ffeb40    edi = 0xf7ec1000
[task 2024-04-25T16:21:10.110Z]     Found by: call frame info
[task 2024-04-25T16:21:10.110Z] 19  libc.so.6 + 0xf8fe5
[task 2024-04-25T16:21:10.110Z]      eip = 0xf7b16fe6    esp = 0xd3ffe430    ebp = 0x00000000
[task 2024-04-25T16:21:10.110Z]     Found by: previous frame's frame pointer
[task 2024-04-25T16:21:10.110Z]

Looks like this is happening on my bug 1876590 try

Keywords: regression
Regressed by: 1876590

we allocate for two PT_NOTE in https://searchfox.org/mozilla-central/rev/f6e3b81aac49e602f06c204f9278da30993cdc8a/toolkit/crashreporter/google-breakpad/src/common/linux/file_id.cc#100, but LC_ALL=C readelf --notes obj-browser-dbg/toolkit/library/build/libxul.so |grep -c "notes found" now reports 3 with my changes?

I don't think this is an issue with the segments vector initial size, because we use push_back() to add segments to it so it should be automatically resized. The point of crash is this and we're crashing when accessing note_header so it's likely that the pointer is bogus. That suggests that the segment we found is also bogus.

I've checked the code and the executable and I think that the note is not being instanced properly. In my local build I get this in the buildid.cpp file:

extern const char gToolkitBuildID[] __attribute__((section(".note.moz.toolkit-build-id"))) = "20240426082302";

Since the variable is marked extern this is just a declaration, not a definition, so the note itself is not being instanced properly, which is confirmed by readelf -n libxul.so complaining about it. If I change that definition to:

const char gToolkitBuildID[] __attribute__((unused)) __attribute__((section(".note.moz.toolkit-build-id"))) = "20240426082302";

The compiler appears to attempt to instance the note, but fails with this error:

 0:07.54 /usr/bin/ld.gold: error: /home/gsvelto/projects/build/firefox/toolkit/library/build/../../../js/xpconnect/src/Unified_cpp_js_xpconnect_src0.o: requires dynamic R_X86_64_PC32 reloc against 'gToolkitBuildID' which may overflow at runtime; recompile with -fPIC
 0:07.61 /usr/bin/ld.gold: error: /home/gsvelto/projects/build/firefox/toolkit/library/build/../../xre/nsAppRunner.o: requires dynamic R_X86_64_PC32 reloc against 'gToolkitBuildID' which may overflow at runtime; recompile with -fPIC
 0:07.78 /usr/bin/ld.gold: error: read-only segment has dynamic relocations

This is the same issue I had with .note.moz.annotation and the reason why there's that magic assembly dance in the crate. You might have to manually instance the note in assembly as well.

took me a while but I got the note and instead of referring to gToolkitBuildID I just store the buildid in the note itself, and voilà https://treeherder.mozilla.org/jobs?repo=try&author=alissy%40mozilla.com&selectedTaskRun=Ip2e901kR5KyKgnsrlh1LQ.0

Status: NEW → RESOLVED
Closed: 10 months ago
Resolution: --- → INVALID
Blocks: 1876590
No longer regressed by: 1876590
You need to log in before you can comment on or make changes to this bug.