apache / apache/pulsar-client-node

HandleScope Entering the V8 API without proper locking in place

Aperta
#477 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
164
Fork
98
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia con il callback del listener asincrono e il binding nativo a cui si fa riferimento nello stack trace, in particolare napi_open_escapable_handle_scope. Riproduci il problema intermittente con l’utilizzo mostrato del listener e segui il callback fino a pulsar.node. Il lavoro è completato quando viene identificato il problema di locking e viene aggiunto un fix verificato o una copertura di regressione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp, javascript, nodejs
Ambito
backend, distributed-systems
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.