[4.2.4] AActor::SetState infinite loop, freezing game (DRPG)
Posted: Sat Nov 09, 2019 12:23 pm
Hello, I'm back with another obscure bug in relation to DRPG and it appears to be unrelated to HUDMessage this time.
So thankfully someone was able to send me a savegame that freezes seconds after loading, something I've been attemping to replicate for far too long.
AFAIK, It seems to be stemming from p_mobj.cpp#L495, and the do-while loop gets stuck and loops for infinity unless if I force line 497 to exit with x64dbg and in which case the engine resumes as normal and no more freezes are witnessed in the next five minutes.
I noticed that AActor::SetState barely registers on the CPU profiler until the freeze happens.
Another thing I noticed was that this freeze seems to go as far back as v3.7.2 and probably earlier.
Here's some info from VS profiler:
https://i.imgur.com/ok6ZuJQ.jpg
Links to save game and the VS profiler report.
https://www.mediafire.com/file/rgv0jux0 ... 0.zip/file
https://www.mediafire.com/file/06m1g854 ... 6.zip/file
I understand DRPG is a pain to setup and test, so feel free to tell me what to change.
Need anymore info? Please scream. Thanks!
How to run:
So thankfully someone was able to send me a savegame that freezes seconds after loading, something I've been attemping to replicate for far too long.
AFAIK, It seems to be stemming from p_mobj.cpp#L495, and the do-while loop gets stuck and loops for infinity unless if I force line 497 to exit with x64dbg and in which case the engine resumes as normal and no more freezes are witnessed in the next five minutes.
I noticed that AActor::SetState barely registers on the CPU profiler until the freeze happens.
Another thing I noticed was that this freeze seems to go as far back as v3.7.2 and probably earlier.
Here's some info from VS profiler:
https://i.imgur.com/ok6ZuJQ.jpg
Links to save game and the VS profiler report.
https://www.mediafire.com/file/rgv0jux0 ... 0.zip/file
https://www.mediafire.com/file/06m1g854 ... 6.zip/file
I understand DRPG is a pain to setup and test, so feel free to tell me what to change.
Need anymore info? Please scream. Thanks!
How to run:
Spoiler: