Skip to content

Oddities and server crash while MUF debugging #694

@tanabi

Description

@tanabi

While working on some cmd-editplayer.muf, I was able to observe a pretty big oddity.

When set to D or Z, either way, if you go to menu item 13 upon entering the program, you will hit this line of code (currently line 1291 in what's check into fuzzball-muf):

      pop GLOBAL_ROOT "_details/" strcat modify-looktraps

The DEBUG and 'z' output will NOT show the trailing '/' on that property when it shows up on the stack. instead, it looks like this:

Debug> Pid 239: #2253 1291 () "/_descs/prefs/global/"
Debug> Pid 239: #2253 1291 ("/_descs/prefs/global/") "_details/"
Debug> Pid 239: #2253 1291 ("/_descs/prefs/global/", "_details/") STRCAT
Debug> Pid 239: #2253 1291 ("/_descs/prefs/global/_details") 
EXEC->modify-looktraps

modify-looktraps uses an automatic variable, whatever we're calling those, so upon EXEC that string immediately goes into a variable. If 'z' debug mode is used, you can 'print' the variable and see it actually has the trailing "/".

Both d and z mode debugging automatically truncate long strings, but there is usually an indicator that the string is truncated. I'm wondering if there's some edge case, maybe a precise number of characters, where you will get truncated without hte indicator? Or is this a more nefarious bug?

Because I also got Hope Island to crash. In Z mode, I experienced a few oddities. I stepped through modify-looktraps and got somewhere around line 429. Basically, I picked 'edit looktrap' (option 3) and edited an existing looktrap, then entered 'y' to the question. It runs determine-list-name and stores the list name in a variable.

I typed 'help' at that juncture to remember how to read a variable ... and after displaying help, the editor acted as if I typed 'continue' and ran to the end of the program. I then had a hard time exiting the program ... I think I typed 'exit' then 'next'... eventually I got out.

Then I debugged it again, this time I didn't use 'help', and I got to the end of the program naturally. Again, I couldn't remember how to get out of the exitor, so I typed 'next' a few times to get out of the program, and the MUCK crashed.

I am documenting these as one big issue because I'm not sure if they are related or not. There's definitely a lot of fishy here; the details strcat problem, for instance, might be a memory error of some kind and it may be precipiated this whole situation. Or perhaps the oddness of 'help' making the program continue -- which, honestly, might also be user error, maybe I typo'd something and made it continue. Or perhaps me hitting next a bunch at the end of the program ? I don't know. There's some combination of these that lead the MUCK to crash.

Unfortunately, my stderr logs don't reveal anything interesting and I don't have a core file. So we will need to dig into this and accurately reproduce it, and break it up into smaller issues as needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions