thread-loader icon indicating copy to clipboard operation
thread-loader copied to clipboard

webpack build hangs with warmup and new cache API

Open eytienne opened this issue 3 years ago • 5 comments

  • Operating System: Alpine 3.12
  • Node Version: 14.16.1
  • NPM Version: yarn 1.22.5
  • webpack Version: 5.38.1
  • thread-loader Version: 3.0.4

Expected Behavior

The build completes.

Actual Behavior

The build hangs, it never terminates, it stops with webpack 5.38.1 compiled successfully in XXX ms but never displays the Done in XXXs. neither quits.

How Do We Reproduce?

I isolated that it comes from the warmup statement. I think the loader never exits because of the new cache API (the filesystem one from the v5) which surely does fulfill its caching purpose but as a consequence no job is being launched so the warmup workers are pending/zombies. You can reproduce with that branch from your example: https://github.com/eytienne/thread-loader/tree/repro_build_hangs

eytienne avatar Jun 28 '21 09:06 eytienne

I look for a way to access the compiler for a fast fix, just subscribing to the done hook but it don't see any way to get the compiler from the warmup function and the pitch function is not triggered at all with cache while debugging. Making a ThreadLoaderWarmupPlugin would solve it through the apply method of the Plugin API but it is a more aggressive patch.

eytienne avatar Jun 28 '21 11:06 eytienne

I have the same problem.

This issue may conflict with warmup statement and webpack5 Persistent Caching. Occurs only when the cache is read.

sectsect avatar Jul 04 '21 08:07 sectsect

+1

juandavidkincaid avatar Jul 21 '21 03:07 juandavidkincaid

+1

hszhsh avatar Nov 02 '21 04:11 hszhsh

I have faced webpack build hanging issue. I have created a test repo to replicate the issue here .

This took forever for me to debug. Removing pre-warmup resolved the issue.

Node: 10.16 webpack: 4.26

deepaktatineni avatar Mar 08 '22 14:03 deepaktatineni