Debugger crashes with assertion failure while using Chrome DevTools and remote debug
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 122k
- Forks
- 37.3k
- Ø Merge
- 4 T. 2 Std.
- Gemergte PRs (30 T.)
- 283
Beschreibung
- 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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, den Absturz mit Node 8.9.1, WebStorm, Chrome DevTools und den im Issue beschriebenen TypeScript-Node-Starter-Schritten zu reproduzieren. Lies die Assertion in src/node.cc bei InternalCallbackScope::Close und verfolge den Stack-Pfad von NodeInspectorClient::runMessageLoopOnPause. Die Aufgabe ist abgeschlossen, wenn Remote-Debugging und Chrome DevTools den Node-Prozess nicht mehr zum Absturz bringen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, node.js
- Bereich
- backend, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100