Open MichaelBelousov opened 2 years ago
You should be able to disable this by running with the command line flag: --change-stack-guard-on-fork=disable
:
https://source.chromium.org/chromium/chromium/src/+/main:base/stack_canary_linux.cc;l=51
This gets past it, which I actually already did (but neglected to mention) by changing the build to disable -fstack-protect
. I still however get a crash rendering my webpage in the renderer. I intend to make a new issue with a minimal shareable reproduction
FWIW, we were facing this in Postman too where we maintain debug builds of Electron and our solution was to introduce a patch that reverts https://chromium-review.googlesource.com/c/chromium/src/+/3295949.
This happens because the size of a Persistent is different for a debug build and a release build. This size mismatch causes the memset call to write into parts of the stack where it shouldn't write, specifically the frame pointers and that messes up the ret procedure from PrepareFrameForCommit to CommitNavigationWithParams.
This difference in sizes should not happen but it happens because Electron is probably passing incorrect options to some of the compilation units but I haven't spent much time to understand where we're passing those options. Maybe someone else could spend some time doing that?
Electron Version
17.4.10 4aaa6eafb04b91760ce4aa93dfc7869297595b31
Operating System Version
Ubuntu 21.10
Arch
x64
Last Known Working Electron version
No Response
Expected Behavior
Be able to create a debug build of the electron native code as shown in your docs for symbol debugging that runs my application.
Expect this
debug.gn
file to work:Actual Behavior
I run the resulting
Debug/electron
executable by itself with no arguments and the renderer thread gets:Tescase Gist URL
No Response
Additional Information
Sorry that this isn't really a bug, but the issue system didn't fit this very well and I couldn't find a better place to put this that I haven't already tried
(I tried to fill out the regular bug entry, but it wouldn't let me submit even with all required fields filled out. So here it is replicated)