webpack-contrib / thread-loader

Runs the following loaders in a worker pool
MIT License
1.12k stars 68 forks source link

webpack build hangs with warmup and new cache API #122

Open eytienne opened 3 years ago

eytienne commented 3 years ago

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 commented 3 years ago

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.

sectsect commented 3 years ago

I have the same problem.

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

juandavidkincaid commented 3 years ago

+1

hszhsh commented 2 years ago

+1

deepaktatineni commented 2 years ago

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

cq112233 commented 1 month ago

+1