apache / apache/pulsar-client-node
HandleScope Entering the V8 API without proper locking in place
- Dominant language
- C++
- Stars
- 164
- Forks
- 98
- PR merge metrics
- No merged PRs in 30d
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 => {
// do something
},
}
```
Can I know why this error occurred?
Contributor guide
No contributing guide indexed for this repository
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.
Assessment
- Tech stack
- cpp, javascript, nodejs
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100