Debugger crashes with assertion failure while using Chrome DevTools and remote debug
Nessuno ha ancora preso questa issue.
- Lingua principale
- JavaScript
- Stelle
- 122k
- Fork
- 37.3k
- Merge medio
- 4g 2h
- PR unite (30g)
- 283
Descrizione
- Version:
8.9.1 LTS - Platform:
macOS 10.13.1 (17B48) (Darwin Kernel Version 17.2.0)
Webstorm 2017.2.5
Chrome: 62.0.3202.94
No crash using Webstorm 2017.1.4
While using the Chrome DevTools and node --inspect, the node process crashes right after Chrome auto-detected the debug session as a network target.
/usr/local/bin/node[28426]: ../src/node.cc:1449:void node::InternalCallbackScope::Close(): Assertion `(env_->trigger_async_id()) == (0)' failed.
1: node::Abort() [/usr/local/bin/node]
2: node::(anonymous namespace)::DomainEnter(node::Environment*, v8::Local<v8::Object>) [/usr/local/bin/node]
3: node::InternalCallbackScope::Close() [/usr/local/bin/node]
4: node::InternalCallbackScope::~InternalCallbackScope() [/usr/local/bin/node]
5: node::RunForegroundTask(v8::Task*) [/usr/local/bin/node]
6: node::NodePlatform::FlushForegroundTasksInternal() [/usr/local/bin/node]
7: node::inspector::NodeInspectorClient::runMessageLoopOnPause(int) [/usr/local/bin/node]
8: v8_inspector::V8Debugger::handleProgramBreak(v8::Local<v8::Context>, v8::Local<v8::Value>, std::__1::vector<int, std::__1::allocator<int> > const&, bool, bool) [/usr/local/bin/node]
9: v8::internal::Debug::OnDebugBreak(v8::internal::Handle<v8::internal::FixedArray>) [/usr/local/bin/node]
10: v8::internal::Debug::Break(v8::internal::JavaScriptFrame*) [/usr/local/bin/node]
11: v8::internal::Runtime_DebugBreakOnBytecode(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
12: 0x2fb5b0f842fd
13: 0x2fb5b108876c
14: 0x2fb5b103d1e0
Reproduce:
- Clone Demo Project: https://github.com/Microsoft/TypeScript-Node-Starter/
- Install mongodb via homebrew
- Start mongodb via
mongod --config /usr/local/etc/mongod.conf - Open demo project in Webstorm,
npm run buildand configure a run configuration by addingNode.jsRun Configuration and changeJavaScript filetodist/server.js - Set breakpoint in
src/controllers/user.tsLine 30 - Start debugger with the Bug icon, right next to the run icon in Webstorm
- Open client site in Chrome
http://localhost:3000 - Use the client site to trigger breakpoint (logged in as user)
- Resume by clicking
Step Out - Use the client site to trigger breakpoint again (logged in as user)
- Chrome: Right-click, Inspect
- Debugger crashes as shown
For me, this crash is only reproducible on one of three Mac systems with identical software versions.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il crash con Node 8.9.1, WebStorm, Chrome DevTools e i passaggi di TypeScript-Node-Starter indicati nell'issue. Leggi l'assertion in src/node.cc in corrispondenza di InternalCallbackScope::Close e segui il percorso dello stack di NodeInspectorClient::runMessageLoopOnPause. Il lavoro è completato quando il debug remoto e Chrome DevTools non causano più il crash del processo Node.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, node.js
- Ambito
- backend, devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100