-
-
Notifications
You must be signed in to change notification settings - Fork 31.7k
SIGILL (Illegal Instruction / Failed DCHECK) in Debug build and SIGSEGV in Release when heapdumping #18223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Comments
Fix is @ https://chromium-review.googlesource.com/c/v8/v8/+/874472 (edit: for the DCHECK. I couldn’t reproduce the segfault?) |
kisg
pushed a commit
to paul99/v8mips
that referenced
this issue
Jan 19, 2018
A map’s `constructor_or_backpointer` can be any kind of value, because `fn.prototype = foo` sets that field to `foo` if the latter is not a `JSReceiver`; so the `DCHECK` that is being removed here was invalid. Refs: nodejs/node#18223 Bug: node:18223 Change-Id: Ia6449c07bb724e515d73b162369ab36ab1d89c6b Reviewed-on: https://chromium-review.googlesource.com/874472 Commit-Queue: Jakob Kummerow <[email protected]> Reviewed-by: Jakob Kummerow <[email protected]> Cr-Commit-Position: refs/heads/master@{#50735}
4 tasks
I'm still working on a reliable reproduction of the segfault. It's proving very elusive and may not have been related to this exact code. |
Kmaschta
added a commit
to Kmaschta/node
that referenced
this issue
Feb 14, 2018
Original commit message: [heap-profiler] remove bogus DCHECK A map’s `constructor_or_backpointer` can be any kind of value, because `fn.prototype = foo` sets that field to `foo` if the latter is not a `JSReceiver`; so the `DCHECK` that is being removed here was invalid. Refs: nodejs#18223 Bug: node:18223 Change-Id: Ia6449c07bb724e515d73b162369ab36ab1d89c6b Reviewed-on: https://chromium-review.googlesource.com/874472 Commit-Queue: Jakob Kummerow <[email protected]> Reviewed-by: Jakob Kummerow <[email protected]> Cr-Commit-Position: refs/heads/master@{nodejs#50735} Refs: v8/v8@55b4879 Fixes: nodejs#18223
Backtrace of the SIGSEGV:
|
addaleax
added a commit
to addaleax/node
that referenced
this issue
Apr 12, 2018
Original commit message: [heap-profiler] remove bogus DCHECK A map’s `constructor_or_backpointer` can be any kind of value, because `fn.prototype = foo` sets that field to `foo` if the latter is not a `JSReceiver`; so the `DCHECK` that is being removed here was invalid. Refs: nodejs#18223 Bug: node:18223 Change-Id: Ia6449c07bb724e515d73b162369ab36ab1d89c6b Reviewed-on: https://chromium-review.googlesource.com/874472 Commit-Queue: Jakob Kummerow <[email protected]> Reviewed-by: Jakob Kummerow <[email protected]> Cr-Commit-Position: refs/heads/master@{nodejs#50735} Refs: v8/v8@55b4879 Fixes: nodejs#18223
targos
pushed a commit
that referenced
this issue
Jun 6, 2018
Original commit message: [heap-profiler] remove bogus DCHECK A map’s `constructor_or_backpointer` can be any kind of value, because `fn.prototype = foo` sets that field to `foo` if the latter is not a `JSReceiver`; so the `DCHECK` that is being removed here was invalid. Refs: #18223 Bug: node:18223 Change-Id: Ia6449c07bb724e515d73b162369ab36ab1d89c6b Reviewed-on: https://chromium-review.googlesource.com/874472 Commit-Queue: Jakob Kummerow <[email protected]> Reviewed-by: Jakob Kummerow <[email protected]> Cr-Commit-Position: refs/heads/master@{#50735} PR-URL: #18339 Fixes: #18223 Refs: v8/v8@55b4879 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Yang Guo <[email protected]>
This was fixed by bce5d45 but the issue was never closed. (Comment or re-open if I'm mistaken!) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Uh oh!
There was an error while loading. Please reload this page.
I have an application I've been unable to heapdump for some time without segfaulting. Tracking it down has been extremely frustrating as the segfault was not consistent; tests would need to be run 10+ times per configuration to confirm the segfault was removed. Switching to the Debug build (tag
v8.9.4
) gives me a consistent SIGILL when heapdumping:I eventually narrowed it down to Lodash 3.10.1 and started deleting lines to get to a minimum possible reproduction. This is as small as I could get it:
Running this then heapdumping it will consistently fail the
DCHECK
on my machine.To more quickly debug, install
heapdump
and append:which will trigger the SIGILL / DCHECK failure almost immediately.
Reproduction repository at https://github.com/STRML/lodash-heapdump-sigill.
V8 Bug at https://bugs.chromium.org/p/v8/issues/detail?id=7328
The text was updated successfully, but these errors were encountered: