Skip to content
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

Fatal error in V8 GC #9465

Closed
holm opened this issue Nov 4, 2016 · 1 comment
Closed

Fatal error in V8 GC #9465

holm opened this issue Nov 4, 2016 · 1 comment
Labels
async_hooks Issues and PRs related to the async hooks subsystem. duplicate Issues and PRs that are duplicates of other issues or PRs.

Comments

@holm
Copy link

holm commented Nov 4, 2016

  • Version: v7.0.0
  • Platform: Darwin MacBook-Pro-3.local 16.1.0 Darwin Kernel Version 16.1.0: Thu Oct 13 21:26:57 PDT 2016; root:xnu-3789.21.3~60/RELEASE_X86_64 x86_64
  • Subsystem: V8

I upgraded to Node 7, cleaned node_modules and did npm install (3.10.8). Started a test run (around 4k tests) and it failed with the following a short way into the testsuite:

#
# Fatal error in ../deps/v8/src/execution.cc, line 103
# Check failed: AllowJavascriptExecution::IsAllowed(isolate).
#

==== C stack trace ===============================

    0   node                                0x0000000100b8db23 v8::base::debug::StackTrace::StackTrace() + 19
    1   node                                0x0000000100b8aca9 V8_Fatal + 233
    2   node                                0x00000001004ff8db v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Handle<v8::internal::Object>) + 1499
    3   node                                0x00000001004ff2eb v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 171
    4   node                                0x0000000100163e03 v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 643
    5   node                                0x0000000100a0020a node::ZCtx::~ZCtx() + 178
    6   node                                0x00000001009fff7a node::ZCtx::~ZCtx() + 14
    7   node                                0x000000010053d3c3 v8::internal::GlobalHandles::DispatchPendingPhantomCallbacks(bool) + 163
    8   node                                0x000000010053d6f1 v8::internal::GlobalHandles::PostGarbageCollectionProcessing(v8::internal::GarbageCollector, v8::GCCallbackFlags) + 49
    9   node                                0x000000010054ea4f v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) + 2079
    10  node                                0x000000010054dca5 v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, char const*, char const*, v8::GCCallbackFlags) + 949
    11  node                                0x000000010050a637 v8::internal::Factory::NewFixedArrayWithHoles(int, v8::internal::PretenureFlag) + 103
    12  node                                0x000000010062fdec v8::internal::MaybeGrow(v8::internal::Isolate*, v8::internal::Handle<v8::internal::FixedArray>, int, int) + 60
    13  node                                0x000000010062f0d0 v8::internal::Isolate::CaptureSimpleStackTrace(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::FrameSkipMode, v8::internal::Handle<v8::internal::Object>) + 3920
    14  node                                0x0000000100630774 v8::internal::Isolate::CaptureAndSetSimpleStackTrace(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::FrameSkipMode, v8::internal::Handle<v8::internal::Object>) + 36
    15  node                                0x000000010066aed8 v8::internal::ErrorUtils::Construct(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::FrameSkipMode, v8::internal::Handle<v8::internal::Object>, bool) + 216
    16  node                                0x000000010020026c v8::internal::Builtin_ErrorConstructor(int, v8::internal::Object**, v8::internal::Isolate*) + 300
    17  ???                                 0x0000360fd5e06167 0x0 + 59441640661351
Illegal instruction: 4
@addaleax addaleax added async_hooks Issues and PRs related to the async hooks subsystem. duplicate Issues and PRs that are duplicates of other issues or PRs. labels Nov 4, 2016
@addaleax
Copy link
Member

addaleax commented Nov 4, 2016

I am pretty sure this is a duplicate of #8216, so I’d recommend going over there to watch the progress. Thanks for reporting it, though!

I’m closing this issue as a dupe, but if you have any follow-up questions, feel free to ask here or over there.

@addaleax addaleax closed this as completed Nov 4, 2016
trevnorris added a commit to trevnorris/node that referenced this issue Dec 1, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

PR-URL: nodejs#9753
Fixes: nodejs#8216
Fixes: nodejs#9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
trevnorris added a commit to trevnorris/node that referenced this issue Dec 2, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

Fixes: nodejs#8216
Fixes: nodejs#9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit that referenced this issue Dec 2, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

PR-URL: #9753
Fixes: #8216
Fixes: #9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
trevnorris added a commit to trevnorris/node that referenced this issue Dec 2, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

Fixes: nodejs#8216
Fixes: nodejs#9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
trevnorris added a commit to trevnorris/node that referenced this issue Dec 2, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

Fixes: nodejs#8216
Fixes: nodejs#9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit that referenced this issue Dec 6, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

Fixes: #8216
Fixes: #9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit that referenced this issue Dec 6, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

PR-URL: #10096
Fixes: #8216
Fixes: #9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
jmdarling pushed a commit to jmdarling/node that referenced this issue Dec 8, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

PR-URL: nodejs#9753
Fixes: nodejs#8216
Fixes: nodejs#9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit that referenced this issue Dec 13, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

Fixes: #8216
Fixes: #9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit that referenced this issue Dec 21, 2016
Calling JS during GC is a no-no. So intead create a queue of all ids
that need to have their destroy() callback called and call them later.

Removed checking destroy() in test-async-wrap-uid because destroy() can
be called after the 'exit' callback.

Missing a reliable test to reproduce the issue that caused the
FATAL_ERROR.

Fixes: #8216
Fixes: #9465
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
async_hooks Issues and PRs related to the async hooks subsystem. duplicate Issues and PRs that are duplicates of other issues or PRs.
Projects
None yet
Development

No branches or pull requests

2 participants