跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么我的 Jest 一跑就会挂掉,错误提示一会儿是 out of memory,一会儿是 EPIPE
未分類
21 7 月 2020

为什么我的 Jest 一跑就会挂掉,错误提示一会儿是 out of memory,一会儿是 EPIPE

为什么我的 Jest 一跑就会挂掉,错误提示一会儿是 out of memory,一会儿是 EPIPE

資深大佬 : yazoox 8

windows 10 (1709)

node 10.19.0

Jest 26.0.1

机器有 32g 内存。编译和运行都没有问题,就是 jest 无法正常跑完。

这个是咋回事儿,没有头绪呢。

在 macos 下跑 jest 就没有问题

<--- Last few GCs --->  [39960:0000015619EDC4D0]   127030 ms: Scavenge 25.7 (30.5) -> 24.9 (30.5) MB, 0.8 / 0.0 ms  (average mu = 0.998, current mu = 0.999) allocation failure [39960:0000015619EDC4D0]   129628 ms: Scavenge 25.8 (30.5) -> 24.9 (30.5) MB, 1.2 / 0.0 ms  (average mu = 0.998, current mu = 0.999) allocation failure [39960:0000015619EDC4D0]   131365 ms: Scavenge 25.8 (30.5) -> 24.9 (30.5) MB, 0.8 / 0.0 ms  (average mu = 0.998, current mu = 0.999) allocation failure   <--- JS stacktrace --->  ==== JS stack trace =========================================      0: ExitFrame [pc: 00000230F2BDC87C]     1: StubFrame [pc: 00000230F2C0FAB5] Security context: 0x00c35e29e6e9 <JSObject>     2: initialize [0000011BDB729891] [C:srcweb-2ndnode_modulesjest-workerbuildworkersChildProcessWorker.js:145] [bytecode=000001792A6C2509 offset=111](this=0x034bdb811831 <ChildProcessWorker map = 0000005E90AC1AD1>)     3: _onExit [0000011BDB729901] [C:srcweb-2ndnode_modulesjest-workerbuildworkersChildP...  FATAL ERROR: Committing semi space failed. Allocation failed - JavaScript heap out of memory  1: 00007FF7C169832A v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4506  2: 00007FF7C1672DB6 node::MakeCallback+4534  3: 00007FF7C1673730 node_module_register+2032  4: 00007FF7C198C14E v8::internal::FatalProcessOutOfMemory+846  5: 00007FF7C198C07F v8::internal::FatalProcessOutOfMemory+639  6: 00007FF7C1B72874 v8::internal::Heap::MaxHeapGrowingFactor+9620  7: 00007FF7C1B6986C v8::internal::ScavengeJob::operator=+24572  8: 00007FF7C1B67EAC v8::internal::ScavengeJob::operator=+17980  9: 00007FF7C1B70BF7 v8::internal::Heap::MaxHeapGrowingFactor+2327 10: 00007FF7C1B70C76 v8::internal::Heap::MaxHeapGrowingFactor+2454 11: 00007FF7C1C9AB9B v8::internal::Factory::AllocateRawWithImmortalMap+59 12: 00007FF7C1C9D50D v8::internal::Factory::NewRawOneByteString+77 13: 00007FF7C1C9CC5A v8::internal::Factory::NewStringFromTwoByte+154 14: 00007FF7C19A7ED1 v8::String::NewFromTwoByte+385 15: 00007FF7C15F3453 v8::internal::StackGuard::ArchiveSpacePerThread+24899 16: 00007FF7C1D7FF98 v8::internal::InterpreterDispatchDescriptor::InitializePlatformIndependent+584 17: 00007FF7C1D81953 v8::internal::InterpreterDispatchDescriptor::InitializePlatformIndependent+7171 18: 00007FF7C1D821DA v8::internal::InterpreterDispatchDescriptor::InitializePlatformIndependent+9354 19: 00007FF7C1D82471 v8::internal::InterpreterDispatchDescriptor::InitializePlatformIndependent+10017 20: 00007FF7C1D806B0 v8::internal::InterpreterDispatchDescriptor::InitializePlatformIndependent+2400 21: 00007FF7C1D81135 v8::internal::InterpreterDispatchDescriptor::InitializePlatformIndependent+5093 22: 00007FF7C19E74E3 v8::internal::Object::ToInt32+12803 23: 00007FF7C1C94CE3 v8::internal::wasm::WasmCodeManager::LookupCode+51395 24: 00000230F2BDC87C error Command failed with exit code 134. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 

或者

      throw er; // Unhandled 'error' event       ^  Error: write EPIPE     at ChildProcess.target._send (internal/child_process.js:762:20)     at ChildProcess.target.send (internal/child_process.js:634:19)     at ChildProcessWorker.send (C:srcweb-2ndnode_modulesjest-workerbuildworkersChildProcessWorker.js:291:17)     at WorkerPool.send (C:srcweb-2ndnode_modulesjest-workerbuildWorkerPool.js:32:34)     at Farm._process (C:srcweb-2ndnode_modulesjest-workerbuildFarm.js:129:10)     at Farm._enqueue (C:srcweb-2ndnode_modulesjest-workerbuildFarm.js:152:10)     at Farm._push (C:srcweb-2ndnode_modulesjest-workerbuildFarm.js:159:12)     at Promise (C:srcweb-2ndnode_modulesjest-workerbuildFarm.js:90:14)     at new Promise (<anonymous>)     at Farm.doWork (C:srcweb-2ndnode_modulesjest-workerbuildFarm.js:56:12) Emitted 'error' event at:     at process.nextTick (internal/child_process.js:766:39)     at process._tickCallback (internal/process/next_tick.js:61:11) error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 

大佬有話說 (7)

  • 資深大佬 : WittBulter

    试一下 jest -w 1

  • 資深大佬 : msg7086

    Let me Google that for you?

    https://stackoverflow.com/q/38558989/2221631 看看能不能解决。

  • 資深大佬 : seki

    换个 node 大版本
    看看 Jest 周边的一些库是不是没有升到新版本
    改变一下测试的数量,从 1 个开始
    改变一下并行 worker 的数量
    在 wsl 底下跑

    都试试看

  • 資深大佬 : jiangzhuo

    都 32G 了就给进程多分点内存呗。

  • 主 資深大佬 : yazoox

    @jiangzhuo #4 这个…… 怎么指定 /分配?

  • 主 資深大佬 : yazoox

    @seki #3 只跑一个 test,或者一个 suite 都没问题。
    知道统一跑,就不行了。

    另,怎么设定 worker 等参数?

  • 資深大佬 : jiangzhuo

    @yazoox #5 node –v8-options 里有写

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具