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

n-api: add missing handle scopes #24011

Closed
wants to merge 1 commit into from

Commits on Nov 1, 2018

  1. n-api: add missing handle scopes

    Currently when building with --debug
    test/addons-napi/test_threadsafe_function will error:
    
    $  out/Debug/node test/addons-napi/test_threadsafe_function/test.js
    FATAL ERROR: v8::HandleScope::CreateHandle()
      Cannot create a handle without a HandleScope
     1: 0x10004e287 node::DumpBacktrace(__sFILE*) [node/out/Debug/node]
     2: 0x1000cd37b node::Abort() [/node/out/Debug/node]
     3: 0x1000cd69f node::OnFatalError(char const*, char const*)
        [/node/out/Debug/node]
     4: 0x1004df0b1 v8::Utils::ReportApiFailure(char const*, char const*)
        [/nodejs/node/out/Debug/node]
     5: 0x100a8c0a9 v8::internal::HandleScope::Extend(
            v8::internal::Isolate*)
        [/node/out/Debug/node]
     6: 0x1004e4229 v8::EmbedderDataFor(v8::Context*,
                                        int, bool,
                                        char const*)
        [/node/out/Debug/node]
     7: 0x1004e43fa v8::Context::SlowGetAlignedPointerFromEmbedderData(int)
        [/node/out/Debug/node]
     8: 0x10001c26b v8::Context::GetAlignedPointerFromEmbedderData(int)
        [/node/out/Debug/node]
     9: 0x1000144ea node::Environment::GetCurrent(v8::Local<v8::Context>)
        [/node/out/Debug/node]
    10: 0x1000f49e2 napi_env__::node_env() const
        [/node/out/Debug/node]
    11: 0x1000f9885
        (anonymous namespace)::v8impl::ThreadSafeFunction::
            CloseHandlesAndMaybeDelete(bool)
        [/node/out/Debug/node]
    12: 0x1000fb34f (anonymous namespace)::v8impl::ThreadSafeFunction::
            DispatchOne()
        [/node/out/Debug/node]
    13: 0x1000fb129
        (anonymous namespace)::v8impl::ThreadSafeFunction::
            IdleCb(uv_idle_s*)
        [/node/out/Debug/node]
    14: 0x1011a1b69 uv__run_idle
        [/node/out/Debug/node]
    15: 0x101198179 uv_run
        [/node/out/Debug/node]
    16: 0x1000dfca1
        node::Start(...)
        [/node/out/Debug/node]
    17: 0x1000dae50 node::Start(...)
        [/node/out/Debug/node]
    18: 0x1000da56f node::Start(int, char**)
        [/node/out/Debug/node]
    19: 0x10141112e main
        [/node/out/Debug/node]
    20: 0x100001034 start
        [/node/out/Debug/node]
    Abort trap: 6
    
    This commit adds two HandleScope's, one to CloseHandlesAndMaybeDelete
    and one to the lambda.
    
    SlowGetAlignedPointerFromEmbedderData will only be called for debug
    builds:
    https://github.com/v8/v8/blob/2ef0aa662fe907a1b36ac1abe7d77ad2bcd27733
    /include/v8.h#L10440-L10447
    danbev committed Nov 1, 2018
    Copy the full SHA
    a4e499b View commit details
    Browse the repository at this point in the history