Description
When running the world::World (line 56)
doctest in Miri with many different seeds, it eventually runs into an endless loop. This can be avoided by using -Zmiri-disable-weak-memory-emulation
. This probably indicates a bug in bevy or its dependencies, but could also be a bug in Miri.
Weak memory emulation makes it so that an atomic load can return "outdated" values, as is permitted by the concurrent memory model of Rust (and C/C++). So likely, some code somewhere reads an old value, thinks it is current, and goes into some kind of spin loop -- and stays there forever.