Debugger crashes with assertion failure while using Chrome DevTools and remote debug
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- JavaScript
- Star
- 122k
- Fork
- 37.3k
- Merge trung bình
- 4 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 283
Mô tả
- 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.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện lỗi crash với Node 8.9.1, WebStorm, Chrome DevTools và các bước TypeScript-Node-Starter trong issue. Đọc assertion trong src/node.cc tại InternalCallbackScope::Close và lần theo đường dẫn stack của NodeInspectorClient::runMessageLoopOnPause. Hoàn thành khi remote debugging và Chrome DevTools không còn làm tiến trình Node bị crash.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, node.js
- Lĩnh vực
- backend, devtools
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 35/100