ID:2917926
 
Not a bug
BYOND Version:515
Operating System:Windows 11 Home 64-bit
Web Browser:Chrome 122.0.0.0
Applies to:Dream Seeker
Status: Not a bug

This is not a bug. It may be an incorrect use of syntax or a limitation in the software. For further discussion on the matter, please consult the BYOND forums.
Version is 515.1633

Descriptive Problem Summary: Occasionally the game will become unresponsive/lock up server-wide. Players cannot move or interact in any meaningful way but some commands still work like CTRL + Arrow Keys to change the direction of their sprite, despite not being able to move. Everything freezes.

If they relog, they immediately see something like this: https://cdn.discordapp.com/attachments/1006201207238447216/ 1220985544184430683/image.png?ex=6610ee66&is=65fe7966&hm=520 2254e71513b23eeeec00c35ce8afb94944192cfae979fcf44da7fdbff727 e&


This infinite loop is present in the runtime errors for a few minutes before the freeze, but it doesn't provide any information, nor are any previous runtimes relevant.


[ERROR] {Fri Mar 22 23:40:43 2024}
error: Maximum recursion level reached (perhaps there is an infinite loop)
To avoid this safety check, set world.loop_checks=0.
file:
line:



Not seeing anything in the Event Viewer


Does the problem occur:
We were previously on 1627, this did not occur then. After updating to the stable build the freeze triggers every couple of days or so.
Happened again. I'll downgrade to 1627 to see if the freeze persists on that version
Lummox JR resolved issue (Not a bug)
This is a code issue, not a BYOND bug. You have an infinite recursion somewhere in your code.

The reason your log has no useful information is that apparently your game doesn't include any debug data in its compilation. It's important that you turn the debug flag on in your Build | Preferences so that you can get this information.

I'll be happy to help you get to the bottom of the cause once there's some info to go on.
Debug flag is on, it's just not providing the line/file for some reason. Also this hasn't occurred since downgrading to 1627. Will remain on 1627 to see if it happens; if it doesn't it's specific to the recent versions.
Nothing changed from 1627 to 1633 that would explain the issue you're seeing. You had a maximum recursion error, which means the proc stack got too large from a recursion. Downgrading didn't fix anything; the issue is simply one that doesn't come up consistently enough.

The specific output you got from the error message isn't something generated in BYOND's code, which means it came from your world.Error() handler. The file and line info being blank likely means that the recursion limit was hit within a stddef.dm proc, but that the caller is the real culprit.

The lack of a call stack is the sticking point here, as it's masking the real culprit. I believe this is because you had previous runtime errors in your log, enough that the call stacks stopped being included in error messages. You can solve this by using the -verbose command line option in Dream Daemon.
Makes sense, thank you!

Hosting with -verbose now. Some of the reoccurring runtime errors were also fixed.
So within an hour of updating from 1627 to 1634 the freeze struck. We did not freeze while on 1627 from March 23 to March 29; on the latest version as mentioned the freeze was daily. This is unlikely to be a coincidence

Here is the runtime that was provided for the infinite recursion. It's our mob/creature/Move code which has not been changed in months


[ERROR] {Fri Mar 29 08:08:02 2024}
error: Maximum recursion level reached (perhaps there is an infinite loop)
To avoid this safety check, set world.loop_checks=0.
file:
line:
proc name: Move (/mob/creature/Move)
usr: (src)
src: Boar (/mob/creature/boar)
src.loc: Forest Grass (538,539,1) (/turf/forest/grass/grass_1)
call stack:
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Bump(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom))
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Bump(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom))
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Bump(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom))
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
...
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Bump(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom))
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Bump(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom))
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Boar (/mob/creature/boar): Bump(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom))
Boar (/mob/creature/boar): Move(the door bottom (539,540,1) (/turf/village/aphros_extra/door_bottom), 5)
Will look into the runtime in more detail later today, reverting back to to 1627 for now
Constable pointed out that it's the same issue as http://www.byond.com/forum/post/2911353
Mystery solved!