Fix: don't run thread specs with the interpreter#14287
Conversation
Starting threads very likely requires support from the interpreter to create the thread (so it knows about it) to run the interpreted code in. This also fixes the "can't resume running fiber" exceptions that started appearing in the wait group pull request, because they were always run after the thread related specs.
FTR: Specs indeed run in random order in CI (this is configured in |
|
@straight-shoota running It's probably because the workflow splits the specs to run N%4 specs, which means we'd need to create a random seed for each run, and share it between each parallel job... |
|
Ah, yeah. You're right. I had even tried to verify that the failing spec from #14167 is actually using |
Starting threads very likely requires support from the interpreter to create the thread (so it knows about it) to run the interpreted code in.
This fixes the "can't resume running fiber" exceptions that started appearing in the WaitGroup pull request, because they were always run after the thread related specs.
What's happening is that either the interpreter or the interpreted code becomes confused, and the scheduler is trying to resume a fiber that's already running in another thread (it might even be a thread's main fiber).
Running the specs in random order (instead of sequentially) would likely trigger the issue.