Soviet5lo / SlashTHEM

Super Lotsa Added Stuff Hack - The Heavily Extended Mod: A variant of Slash'EM that adds a bunch of content.
30 stars 9 forks source link

Crash on "end_burn: obj %s not lit" #51

Open k21971 opened 3 years ago

k21971 commented 3 years ago

Version 0.9.6, player is in the mines, goes down the stairs, encounters bones, is right next to the player's ghost. Game immediately crashes. Backtrace of the coredump produces this:

Core was generated by `/slashthem-0.9.6/slashthem -u nabru'. Program terminated with signal SIGSEGV, Segmentation fault.

0 0x00007f68651bc5a1 in __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:184

184 ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory. (gdb) bt

0 0x00007f68651bc5a1 in __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:184

1 0x00007f686508b4d3 in _IO_vfprintf_internal (s=0x7ffeeadf3d80, format=0x56010a693d70 "end_burn: obj %s not lit",

ap=0x7ffeeadf4708) at vfprintf.c:1433

2 0x00007f68650af6d1 in _IO_acquire_lock_fct (p=) at libioP.h:796

3 _IO_ungetc (c=, fp=0x7ffeeadf3d80) at ioungetc.c:38

4 0x00007ffeeadf3ed0 in ?? ()

5 0x00007ffeeadf3ed0 in ?? ()

6 0x00007ffeeadf3ed0 in ?? ()

7 0x00007ffeeadf3ed0 in ?? ()

8 0x00007ffeeadf3ede in ?? ()

9 0xffffffffffffffff in ?? ()

10 0x00007ffeeadf3ed0 in ?? ()

11 0xffffffffffffffff in ?? ()

12 0x0000000000000000 in ?? ()

Not too terribly helpful, but it indicates a light source as being the issue. Game recovers, but as the player reloads, same crash occurs immediately.

Soviet5lo commented 3 years ago

Huh. I'm used to the occasional "begin_burn" issue (typically from lightsabers from my experience) but not "end_burn".

Anyway to tell what objects are in the bones file, perhaps from a dumplog? If I had to guess it's probably something weird with lightsabers.

k21971 commented 3 years ago

Dumplog - https://www.hardfought.org/userdata/P/Pacra/slashthem/dumplog/1632336777.slth.txt

Soviet5lo commented 3 years ago

Yeah, looks like it was due to a lightsaber. I'm guessing something caused it to deactivate (possibly ran out of energy?) but the game didn't flag it as still lit.

I want to say this has been fixed in a variant but I'm not completely sure; this almost certainly exists in other slash'em variants otherwise (Extended, 9, Up)

gebulmer commented 3 years ago

Why would it crash here? that backtrace looks suspicious

Reproducing it with a lit lightsaber fires the impossible as expected but doesn't crash

It's like the binary was compiled to include avx2 features that the machine it's running on doesn't support or something? idk

moon-chilled commented 3 years ago

Backtrace looks fine. That's exactly what I would expect to see if you said sprintf("end_burn: obj %s not lit", NULL) (or a bad pointer in place of null).

gebulmer commented 3 years ago

fair enough, my mistake

I was trying to reproduce it with leaving wizmode bones but must be missing something

Soviet5lo commented 3 years ago

Should be semi-fixed in 9e6341dd0; I think the issue of the crash was the game attempting to pull the name of an object that hasn't been seen yet (mostly tied to @moon-chilled comment). This doesn't necessarily resolve the root cause of the end_burn impossible though.