Closed
Description
One possible limitation of GCStress today is that each instruction is instrumented and stressed only once. After GC is run on an instrumented instruction, that instrumented instruction is replaced by its original instruction, so it never triggers a GC again. This means if a hole exists at an instruction, but isn't triggered by the first run of the instruction, we will miss it. This was potentially the case with the JIT creating illegal byrefs, fixed by dotnet/coreclr#17524.
Possibly introduce a (super slow) mode where we don't replace the instrumented instructions by their original instructions, or not immediately. Or, periodically re-instrument functions.