HandleScope Entering the V8 API without proper locking in place

Open
#477 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Quiet
Tech stack
cpp, javascript, nodejs

Research direction

Start with the asynchronous listener callback and the native binding referenced in the stack trace, particularly napi_open_escapable_handle_scope. Reproduce the intermittent failure with the shown listener usage and trace the callback into pulsar.node. Done means identifying the locking issue and adding a verified fix or regression coverage.

Written by the indexing model from the issue text.

Description

Hello, I am intermittently encountering an issue that appears to originate from the listener callback.

FATAL ERROR: HandleScope::HandleScope Entering the V8 API without proper locking in place
----- Native stack trace -----

 1: 0xf410aa node::OnFatalError(char const*, char const*) [node]
 2: 0x1389184 v8::Utils::ReportApiFailure(char const*, char const*) [node]
 3: 0x138ab3e v8::EscapableHandleScopeBase::EscapableHandleScopeBase(v8::Isolate*) [node]
 4: 0x103cd2a napi_open_escapable_handle_scope [node]
 5: 0x7f794ed6f718  [/app/node_modules/.pnpm/pulsar-client@1.16.0/node_modules/pulsar-client/lib/binding/pulsar.node]
 6: 0x7f794ed9346b  [/app/node_modules/.pnpm/pulsar-client@1.16.0/node_modules/pulsar-client/lib/binding/pulsar.node]
 7: 0x7f794ed7b097  [/app/node_modules/.pnpm/pulsar-client@1.16.0/node_modules/pulsar-client/lib/binding/pulsar.node]
 8: 0x1061ab3  [node]
 9: 0x210d4c3  [node]
10: 0x2123f6a  [node]
11: 0x210e187 uv_run [node]
12: 0xf8c055 node::SpinEventLoopInternal(node::Environment*) [node]
13: 0x1119642 node::NodeMainInstance::Run() [node]
14: 0x1058782 node::Start(int, char**) [node]
15: 0x7f79af7fe24a  [/lib/x86_64-linux-gnu/libc.so.6]
16: 0x7f79af7fe305 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
17: 0xf8761e _start [node]

I defined the listener callback as follows to handle messages asynchronously:

await getPulsarConsumer({
    listener: async (message, messageConsumer): Promise<void> => {
      // do something
    },
  }

Can I know why this error occurred?

Dominant language
C++
Stars
164
Forks
99
Avg merge
5d 18h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/pulsar-client-node

All issues in apache/pulsar-client-node

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.