taskpool exhaustion in lld/wasm

On a 12" MacBook (2017) with 2 cores I get lld/wasm to be stuck in:

https://gist.githubusercontent.com/carlokok/1a14e7ed3dbbd54511e1f0b3a7d684ff/raw/19267560b584ca42cc66f44f508df5b34102d803/thread%20for%20waiting

It seems the outer for loop exhausts the thread pool, and the inner ones trigger a new parallel for which never finishes because the pool is full. Is this a bug or am I missing something obvious?

Are you sure it’s not just taking “a long time”? If that build machine doesn’t have enormous amounts of memory you could end up with a link phase that takes tons of time for projects like clang or chrome.

Try linking a minimal case. If the bug you describe were there it should reproduce easily (maybe once you get up to enough object files or sections, whatever it’s iterating over).

It’s a wasm testcase that ends up with a 1 mb executable; after 15 minutes I killed it, it doesn’t do anything (note that it’s waiting on a conditional variable in ALL threads)

Hello,

Can you check whether your build includes r358547?

Thanks,

Dan

Thanks; it did not (was off by a few days); i’ll try, that looks promising, thanks!