Skip to content

fatal v8 error:Entering the V8 API without proper locking in place  #23997

@lolobug

Description

@lolobug
stack :
signal 6 (SIGABRT), code -6 (?), fault addr 00004d37
#00  pc 0x39acc  /system/lib/libc.so (tgkill+12)
#01  pc 0x13dad  /system/lib/libc.so (pthread_kill+52)
#02  pc 0x14a27  /system/lib/libc.so (raise+10)
#03  pc 0x11145  /system/lib/libc.so (???)
#04  pc 0xf6ac  /system/lib/libc.so (abort+4)
#05  pc 0x37291  /data/app/com.xxxx-1/lib/arm/libj2v8.so (???)
#06  pc 0x3943ed  /data/app/com.xxxx-1/lib/arm/libv8.so (v8::HandleScope::Initialize(v8::Isolate*)+100)
#07  pc 0x394381  /data/app/com.xxxx-1/lib/arm/libv8.so (v8::HandleScope::HandleScope(v8::Isolate*)+4)
#08  pc 0xbccdc  /data/app/com.xxxx-1/lib/arm/libnode.so (node::Environment::CheckImmediate(uv_check_s*)+40)
  • Version:10.3.0
  • Platform:android:
    Subsystem:

V8 fatat handler message : Entering the V8 API without proper locking in place (HandleScope::HandleScope)
This occurs by chance.

I noticed :

uv_check_start(immediate_check_handle(), CheckImmediate);

Actually I place all the operations of node in a single thread and use a V8::Locker.
Is it possible that the CheckImmediate will switch to another thread?

there's V8 HandleScope::Initialize code:

Utils::ApiCheck(
  !v8::Locker::IsActive() ||
  internal_isolate->thread_manager()->IsLockedByCurrentThread() ||
   internal_isolate->serializer_enabled(),
   "HandleScope::HandleScope",
   "Entering the V8 API without proper locking in place");

Metadata

Metadata

Assignees

No one assigned

    Labels

    c++Issues and PRs that require attention from people who are familiar with C++.embeddingIssues and PRs related to embedding Node.js in another project.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions