Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

beidou-webpack 会导致自动重启 #184

Closed
icai opened this issue Jul 14, 2019 · 7 comments
Closed

beidou-webpack 会导致自动重启 #184

icai opened this issue Jul 14, 2019 · 7 comments

Comments

@icai
Copy link

icai commented Jul 14, 2019

<--- Last few GCs --->

[83058:0x103a98000]    33939 ms: Mark-sweep 1353.2 (1445.4) -> 1352.8 (1449.9) MB, 246.6 / 0.0 ms  (average mu = 0.156, current mu = 0.052) allocation failure scavenge might not succeed
[83058:0x103a98000]    34191 ms: Mark-sweep 1362.8 (1449.9) -> 1362.7 (1446.9) MB, 234.4 / 0.0 ms  (average mu = 0.116, current mu = 0.071) allocation failure scavenge might not succeed

<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x38a5a3e1d971 <JSObject>
    0: builtin exit frame: stringify(this=0x38a5a3e10941 <Object map = 0x38a507583e21>,2,0x38a5313022a1 <null>,0x38a562dfa5c1 <Object map = 0x38a5bec4c761>,0x38a5a3e10941 <Object map = 0x38a507583e21>)

    1: cb(aka cb) [0x38a5a8bb2371] [/Users/ssss/xxx/node_modules/_beidou-webpack@2.2.1@beidou-webpack/lib/plugin/isomorphic.js:72] [bytecode=0x38a5d0690279 offset=46](this=0x38a5313025b1 <un...



FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x100060e87 node::Abort() [/usr/local/Cellar/node/11.10.0/bin/node]
 2: 0x1000614f5 node::OnFatalError(char const*, char const*) [/usr/local/Cellar/node/11.10.0/bin/node]
 3: 0x10017a687 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/Cellar/node/11.10.0/bin/node]
 4: 0x10017a628 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/Cellar/node/11.10.0/bin/node]
 5: 0x100437638 v8::internal::Heap::UpdateSurvivalStatistics(int) [/usr/local/Cellar/node/11.10.0/bin/node]
 6: 0x100439079 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/usr/local/Cellar/node/11.10.0/bin/node]
 7: 0x1004369bf v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/Cellar/node/11.10.0/bin/node]
 8: 0x1004357ad v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/Cellar/node/11.10.0/bin/node]
 9: 0x10043d671 v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/Cellar/node/11.10.0/bin/node]
10: 0x10043d6c0 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/Cellar/node/11.10.0/bin/node]
11: 0x10041dd1b v8::internal::Factory::AllocateRawWithImmortalMap(int, v8::internal::PretenureFlag, v8::internal::Map*, v8::internal::AllocationAlignment) [/usr/local/Cellar/node/11.10.0/bin/node]
12: 0x10041f87d v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/usr/local/Cellar/node/11.10.0/bin/node]
13: 0x10066d1be v8::internal::IncrementalStringBuilder::Extend() [/usr/local/Cellar/node/11.10.0/bin/node]
14: 0x1004cbe2e v8::internal::JsonStringifier::SerializeString(v8::internal::Handle<v8::internal::String>) [/usr/local/Cellar/node/11.10.0/bin/node]
15: 0x1004cf234 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
16: 0x1004ce31a v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
17: 0x1004cc949 v8::internal::JsonStringifier::SerializeArrayLikeSlow(v8::internal::Handle<v8::internal::JSReceiver>, unsigned int, unsigned int) [/usr/local/Cellar/node/11.10.0/bin/node]
18: 0x1004ceffc v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
19: 0x1004ce31a v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
20: 0x1004cc949 v8::internal::JsonStringifier::SerializeArrayLikeSlow(v8::internal::Handle<v8::internal::JSReceiver>, unsigned int, unsigned int) [/usr/local/Cellar/node/11.10.0/bin/node]
21: 0x1004ceffc v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
22: 0x1004ccbcc v8::internal::JsonStringifier::SerializeJSReceiverSlow(v8::internal::Handle<v8::internal::JSReceiver>) [/usr/local/Cellar/node/11.10.0/bin/node]
23: 0x1004cd7ad v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
24: 0x1004cc949 v8::internal::JsonStringifier::SerializeArrayLikeSlow(v8::internal::Handle<v8::internal::JSReceiver>, unsigned int, unsigned int) [/usr/local/Cellar/node/11.10.0/bin/node]
25: 0x1004ceffc v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
26: 0x1004ce31a v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
27: 0x1004ca8fc v8::internal::JsonStringifier::Stringify(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
28: 0x1004ca87b v8::internal::JsonStringify(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [/usr/local/Cellar/node/11.10.0/bin/node]
29: 0x100206d5f v8::internal::Builtin_Impl_JsonStringify(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/usr/local/Cellar/node/11.10.0/bin/node]
30: 0x2e4ef8a4fddd 
31: 0x2e4ef8a0e458 
2019-07-14 21:10:55,466 WARN 83030 [TCPBase] socket is closed by other side while there were still unhandled data in the socket buffer
2019-07-14 21:10:55,466 WARN 83030 [ClusterClient:Watcher] follower closed, and try to init it again


👇👇👇👇

debug('webpack compile json:\n', JSON.stringify(json, null, 2));
  • Node Version: 11.10.0

  • Beidou Version: 2.2.1

  • Plugin Name And Version:

  • React/ReactDOM Versions:

  • Platform: Mac

  • Mini Showcase Repository:

  • Other Info:

    System:
    OS: macOS 10.14.5
    Binaries:
    Node: 11.10.0 - /usr/local/bin/node
    Yarn: 1.16.0 - /usr/local/bin/yarn
    npm: 6.9.0 - /usr/local/bin/npm
    Browsers:
    Chrome: 75.0.3770.100
    Firefox: Not Found
    Safari: 12.1.1
    npmPackages:
    typescript: ^3.3.0 => 3.5.3 (2.9.2)

Current behavior

Expected behavior

@njugray
Copy link
Contributor

njugray commented Jul 15, 2019

能提供一下复现方法吗?

@icai
Copy link
Author

icai commented Jul 15, 2019

@njugray 大概有30多个页面,大概有20个页面都有 worker-loader (worker-loader 会触发子编译,worker-loader 的资源大概有 10来个)

@njugray
Copy link
Contributor

njugray commented Jul 15, 2019

@icai 这种场景确实有可能会堆栈溢出,能确认是 JSON 序列化导致的么,本地注释掉对应代码可以正常运行么?

如果是页面过多,最终还是需要通过提高内存占用限制来解决

relate issue: webpack/webpack#6389 (comment)

@icai
Copy link
Author

icai commented Jul 15, 2019

@njugray 还有 webpack 等待时间巨慢,能否实行异步编译

@njugray
Copy link
Contributor

njugray commented Jul 15, 2019

dev启动的时候,webpack 是在 agent 中异步拉起的,理论上node server 启动不受影响,只是请求会被pending住。

这个等待时间就是 webpack-dev-server的启动时间

@icai
Copy link
Author

icai commented Jul 15, 2019

@njugray 假如 master线程触发 watch (比如修改了 controller,service 等),agent上的 webpack 会重启吗

@njugray
Copy link
Contributor

njugray commented Jul 15, 2019

@icai 不会,webpack重启只有在 entry 变化时触发自动重启,或在控制台输入 rs 手动重启

@njugray njugray closed this as completed Aug 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants