Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oddities and server crash while MUF debugging #694

Open
tanabi opened this issue May 13, 2023 · 0 comments
Open

Oddities and server crash while MUF debugging #694

tanabi opened this issue May 13, 2023 · 0 comments
Labels
bug Something isn't working nightmare fuel

Comments

@tanabi
Copy link
Collaborator

tanabi commented May 13, 2023

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.

@tanabi tanabi added bug Something isn't working nightmare fuel labels May 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working nightmare fuel
Projects
None yet
Development

No branches or pull requests

1 participant