MantisBT - Zandronum
View Issue Details
0002743Zandronum[All Projects] Bugpublic2016-05-29 03:272024-04-17 05:57
Fr3ak 
 
normalcrashunable to reproduce
closedno change required 
MicrosoftWindowsXP/Vista/7
2.0 
 
0002743: Justified Classes Crash
Okay so, twice a server crashed at random while playing Justified Classes, a mod for MM8BDM. We have no idea what caused the crash, but I asked Jenova for the crash dumps and he found them for me. I'm not sure what to make of this, nor where the problem even lies. All we know is that it happens at random times and that we are unable to reproduce the crash at the moment.
Unknown
It seems to happen at random times, but most of the times, someone was respawning at the time it happened.
No tags attached.
log zandronum-crash-05_27_2016-15_48_39.29860.log (9,064) 2016-05-29 03:27
/tracker/file_download.php?file_id=1814&type=bug
log zandronum-crash-05_27_2016-16_17_59.12152.log (9,064) 2016-05-29 03:28
/tracker/file_download.php?file_id=1815&type=bug
? Zandronum_31.05.2016_15.09.31-Pharaoh_Crash.cld (22,217) 2016-06-01 03:54
/tracker/file_download.php?file_id=1816&type=bug
zip CrashReport020.zip (36,060) 2016-07-03 02:08
/tracker/file_download.php?file_id=1848&type=bug
txt justified_a_jumpintargetinventory_classes.txt (39,451) 2016-07-10 09:18
/tracker/file_download.php?file_id=1860&type=bug
Issue History
2016-05-29 03:27Fr3akNew Issue
2016-05-29 03:27Fr3akFile Added: zandronum-crash-05_27_2016-15_48_39.29860.log
2016-05-29 03:28Fr3akFile Added: zandronum-crash-05_27_2016-16_17_59.12152.log
2016-05-29 08:04Edward-sanNote Added: 0014994
2016-05-29 08:05Edward-sanStatusnew => feedback
2016-05-29 15:36Fr3akNote Added: 0014996
2016-05-29 15:36Fr3akStatusfeedback => new
2016-05-29 17:49Edward-sanNote Added: 0014997
2016-05-29 17:49Edward-sanStatusnew => feedback
2016-05-31 19:13Fr3akNote Added: 0014999
2016-05-31 19:13Fr3akStatusfeedback => new
2016-05-31 20:13Edward-sanNote Added: 0015000
2016-05-31 20:13Edward-sanStatusnew => feedback
2016-06-01 03:54Fr3akFile Added: Zandronum_31.05.2016_15.09.31-Pharaoh_Crash.cld
2016-06-01 03:54Fr3akNote Added: 0015001
2016-06-01 03:54Fr3akStatusfeedback => new
2016-06-01 08:29Edward-sanNote Added: 0015002
2016-06-01 08:30Edward-sanStatusnew => feedback
2016-07-03 01:09Fr3akNote Added: 0015199
2016-07-03 01:09Fr3akStatusfeedback => new
2016-07-03 01:09Fr3akNote Added: 0015200
2016-07-03 02:08Fr3akFile Added: CrashReport020.zip
2016-07-03 02:09Fr3akNote Added: 0015202
2016-07-03 11:02Torr SamahoNote Added: 0015203
2016-07-03 11:03Torr SamahoStatusnew => feedback
2016-07-03 14:07Fr3akNote Added: 0015205
2016-07-03 14:07Fr3akStatusfeedback => new
2016-07-05 18:25Fr3akNote Added: 0015213
2016-07-06 06:09Torr SamahoNote Added: 0015214
2016-07-06 06:10Torr SamahoNote Edited: 0015214bug_revision_view_page.php?bugnote_id=15214#r9214
2016-07-06 07:45DrinkyBirdNote Added: 0015215
2016-07-06 07:59DrinkyBirdNote Added: 0015216
2016-07-06 08:05DrinkyBirdNote Edited: 0015216bug_revision_view_page.php?bugnote_id=15216#r9216
2016-07-06 08:05DrinkyBirdNote Edited: 0015216bug_revision_view_page.php?bugnote_id=15216#r9217
2016-07-06 08:06DrinkyBirdNote Edited: 0015216bug_revision_view_page.php?bugnote_id=15216#r9218
2016-07-06 08:42DrinkyBirdNote Edited: 0015216bug_revision_view_page.php?bugnote_id=15216#r9219
2016-07-06 08:44DrinkyBirdNote Edited: 0015216bug_revision_view_page.php?bugnote_id=15216#r9220
2016-07-09 00:22Ru5tK1ngNote Added: 0015226
2016-07-09 14:45Fr3akNote Added: 0015232
2016-07-09 15:11Edward-sanNote Added: 0015234
2016-07-09 15:13Edward-sanNote Edited: 0015234bug_revision_view_page.php?bugnote_id=15234#r9232
2016-07-09 15:15Torr SamahoNote Added: 0015235
2016-07-09 15:16Fr3akNote Added: 0015236
2016-07-09 18:04Fr3akNote Added: 0015244
2016-07-09 18:44Torr SamahoNote Added: 0015245
2016-07-09 19:04Fr3akNote Added: 0015246
2016-07-10 07:24Torr SamahoNote Added: 0015247
2016-07-10 09:16Edward-sanFile Added: justified_a_jumpintargetinventory_classes.txt
2016-07-10 09:18Edward-sanFile Deleted: justified_a_jumpintargetinventory_classes.txt
2016-07-10 09:18Edward-sanFile Added: justified_a_jumpintargetinventory_classes.txt
2016-07-10 09:21Edward-sanNote Added: 0015249
2016-07-10 09:21Edward-sanNote Edited: 0015249bug_revision_view_page.php?bugnote_id=15249#r9236
2016-07-10 11:24DuskNote Added: 0015251
2016-07-10 11:24DuskNote Edited: 0015251bug_revision_view_page.php?bugnote_id=15251#r9238
2016-07-10 11:25DuskStatusnew => resolved
2016-07-10 11:25DuskResolutionopen => invalid
2016-07-10 11:25DuskAssigned To => Dusk
2016-07-10 13:45Fr3akNote Added: 0015252
2016-07-10 13:45Fr3akStatusresolved => feedback
2016-07-10 13:45Fr3akResolutioninvalid => reopened
2016-07-10 13:53Torr SamahoNote Added: 0015253
2016-07-10 14:12Fr3akNote Added: 0015255
2016-07-10 14:12Fr3akStatusfeedback => assigned
2016-07-10 14:33Torr SamahoNote Added: 0015256
2016-07-10 14:43Fr3akNote Added: 0015259
2016-07-10 15:09Edward-sanNote Added: 0015262
2016-07-10 15:41Torr SamahoNote Added: 0015265
2016-07-10 16:37Fr3akNote Added: 0015270
2016-07-10 18:06Torr SamahoNote Added: 0015273
2016-07-10 20:07DuskAssigned ToDusk =>
2016-07-10 20:07DuskSeveritymajor => crash
2016-07-10 20:07DuskStatusassigned => feedback
2016-07-10 20:15Fr3akNote Added: 0015274
2016-07-10 20:15Fr3akStatusfeedback => new
2016-07-10 21:07Torr SamahoNote Added: 0015275
2016-07-10 21:27Fr3akNote Added: 0015276
2016-07-11 05:57Torr SamahoNote Added: 0015279
2024-04-17 05:57Ru5tK1ngNote Added: 0023624
2024-04-17 05:57Ru5tK1ngStatusnew => closed
2024-04-17 05:57Ru5tK1ngResolutionreopened => no change required

Notes
(0014994)
Edward-san   
2016-05-29 08:04   
They contain no debug info, so this can't be investigated. The server must be compiled with debug info to make sense.
(0014996)
Fr3ak   
2016-05-29 15:36   
Edward-san, how do I compile a server with debug info? It's hosted on Best-Ever, if that makes any difference.
(0014997)
Edward-san   
2016-05-29 17:49   
It's up to Best-Ever's maintainer, because afair the server has the code different from the official zandronum server.

If you still wish to reproduce the problem by hosting your server, it depends on your platform. If you have Windows, you should not need to compile it, because Windows version of the server crash report should be more detailed even without debug mode.
(0014999)
Fr3ak   
2016-05-31 19:13   
Edward-san, will you be able to find anything wrong if I provide a Doomseeker demo?
(0015000)
Edward-san   
2016-05-31 20:13   
It won't tell me much, because the demo is client-sided while the crash is server-sided, but it's worth trying. Go ahead and update a demo.
(0015001)
Fr3ak   
2016-06-01 03:54   
Done.
(0015002)
Edward-san   
2016-06-01 08:29   
How was the demo recorded? There's nothing useful inside.
(0015199)
Fr3ak   
2016-07-03 01:09   
Oh. The game crashed offline again. If I send you a report of the offline crash, will you be able to determine the problem?
(0015200)
Fr3ak   
2016-07-03 01:09   
Also, that demo was recorded with Doomseeker.
(0015202)
Fr3ak   
2016-07-03 02:09   
Okay, I heard that offline crash reports can be used to find the issue. That's why I uploaded the most recent crash report right now.
(0015203)
Torr Samaho   
2016-07-03 11:02   
Your crash log looks like an infinite recursion involving A_JumpIfInventory and that is triggered by ACS_ExecuteAlways.

Does it still happen in the latest Zandronum 3.0 beta?
(0015205)
Fr3ak   
2016-07-03 14:07   
I don't know because I do not have the 3.0 beta. I am going to look for it right now.
(0015213)
Fr3ak   
2016-07-05 18:25   
Okay, the server crashed again on TPSG, this time with justifiedclasses-v3e.pk3. I have the log right here. See if you can find anything:'https://gist.githubusercontent.com/anonymous/5133d87daeba2d3c3a5dd7d977e8f239/raw/0c2f1159a40a0cbb3635314d4062bbed4e599beb/zandronum-crash-07_05_2016-14_14_47.1432.log [^]'
(0015214)
Torr Samaho   
2016-07-06 06:09   
(edited on: 2016-07-06 06:10)
Considering how long that crash log is, that looks like an infinite recursion. Is there any chance you can test this on a server running a debug build to get a more insightful crash log? Also, this is still a 2.1.2 crash log. Did you check if the crash still happens in the 3.0 betas?

(0015215)
DrinkyBird   
2016-07-06 07:45   
I'll compile a 2.1.2 debug build and put it on TSPG Painkiller.
(0015216)
DrinkyBird   
2016-07-06 07:59   
(edited on: 2016-07-06 08:44)
Well, I compiled one, but it just froze. I had to kill it via htop.
'http://static.allfearthesentinel.net/logs/57089327f825778780a4ca4967ff528e.txt [^]'
I started one manually via ssh and it worked, so I have no clue what's going on...


EDIT: I've fixed it.

Use version="2.1.2-dbg" in your hostcmd to launch a debug server

EDIT II: I also added a 3.0-dbg version, however the server doesn't start correctly. The log hangs after "GeoIP initialised" ('http://static.allfearthesentinel.net/logs/a6175ebb263adc9a10ac045c1083b4db.txt [^]' (ignore the first argument in the Cmd Line at the top of the log, that's for the wrapper script and not sent to Zandronum)), and you can't connect to it at all (gets stuck at Connecting to... or requesting snapshot).

(0015226)
Ru5tK1ng   
2016-07-09 00:22   
Quote
Also, this is still a 2.1.2 crash log. Did you check if the crash still happens in the 3.0 betas?

If I recall, people said that Megaman 8BDM doesn't work with 3.0. Running his mod with 3.0 will not be possible currently.
(0015232)
Fr3ak   
2016-07-09 14:45   
Okay guys, I am back with a new log.'http://static.allfearthesentinel.net/crash/zandronum-crash-07_09_2016-08_46_04.23002.log [^]' Strangely enough, only one person was in the server at the time of the crash. Here is the server log:'http://static.allfearthesentinel.net/logs/cc7dc3510e601d05b937849d49a82fac.txt [^]'
Can you find out what actor caused this crash at all? Again, happened with justifiedclasses-v3ehh
(0015234)
Edward-san   
2016-07-09 15:11   
(edited on: 2016-07-09 15:13)
Finally a decent crash log :) .

[edit]

Quote
Can you find out what actor caused this crash at all?

Sadly this information can be accessed only with an active debugging session, although it's sure one of the player classes cause the issue.

(0015235)
Torr Samaho   
2016-07-09 15:15   
Judging from the crash logs, it looks like an DECORATE infinite loop caused by a death state that starts with A_JumpIfInTargetInventory. Could actually be an error of the mod instead of a Zandronun error. Can somebody check the death states for A_JumpIfInTargetInventory?
(0015236)
Fr3ak   
2016-07-09 15:16   
Yeah, but is there any way to find out what actor caused it?
(0015244)
Fr3ak   
2016-07-09 18:04   
Okay, guys. Since this kind of crash has literally never happened in any other version of Justified before,
'http://static.allfearthesentinel.net/logs/cb61108c2dcb3bbc60e41332a35652c6.txt [^]'
I think it's safe to assume that it's a Zandronum issue. Nothing at all was ever changed in Justified with custom states between one version and the next. They all work the same. Is there any way you guys could investigate this at all?
(0015245)
Torr Samaho   
2016-07-09 18:44   
Quote from Fr3ak
Since this kind of crash has literally never happened in any other version of Justified before, I think it's safe to assume that it's a Zandronum issue.

Wait, you are saying that Zandronum works fine with any older version of Justified? Then something is changed in Justified and Zandronum starts crashing? And then you conclude that it's a Zandronum issue? I don't understand the reasoning. The only thing you can conclude is that whatever Justified changed, causes the crash. Whether it's bad DECORATE code (mod error) or an error in Zandronum is complete unclear.

Quote from Fr3ak
Is there any way you guys could investigate this at all?

As I said in 0002743:0015235: Somebody should check the death states for A_JumpIfInTargetInventory and see if there are any infinite loop.
(0015246)
Fr3ak   
2016-07-09 19:04   
No, Torr. I'm saying that the Justified has literally never crashed randomly like that in any other version of Zandronum. No major changes were made to the mechanics of each Justified version, so that is why we think it is a Zandronum issue.
(0015247)
Torr Samaho   
2016-07-10 07:24   
I still don't see the reasoning. As long as you don't have one version of Justified that works fine in some version of Zandronum and not in another version of Zandronum, there is no evidence that the problem is more likely a Zandronum error than a mod error. It could be either.

The only real evidence we have (crash log pointing to a potential DECORATE infinite loop), make a mod error more likely than a Zandronum error.

How many actors are using A_JumpIfInTargetInventory in one of their death states in the mod? Unless this are too many, this should be a good starting point to isolate the cause of the crashes.
(0015249)
Edward-san   
2016-07-10 09:21   
It seems A_JumpIfInTargetInventory is used quite a lot in the Justified mod (see the attached text file). Good luck finding the responsible code...

(0015251)
Dusk   
2016-07-10 11:24   
After a lot of debugging hassle I think we found it:


    ClassDeath:
        CUTM H 0 A_JumpIfInTargetInventory("MegaBusterC",1,"WeaponGetM")
        CUTM H 0 A_JumpIfInTargetInventory("BassBusterBoss",1,"WeaponGetB")
        CUTM H 0 A_JumpIfInTargetInventory("ProtoBusterBoss",1,"WeaponGetP")
        MERC H 20 ACS_ExecuteAlways(999,0,0)
        MERC H 0 A_PlayerScream
        NOFX A 0 A_SpawnItemEx("FakeDeathFX",0,0,32)
        NOFX A 1 A_CheckPlayerDone
        wait
    ClassIceDeath:
        MERC A 35
        NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
        NOFX A 1 A_CheckPlayerDone
        wait
    WeaponGetJ:
        CUTM H 0 A_JumpIfInTargetInventory("CrystalJoeWep",1,2)
        CUTM H 0 A_GiveToTarget("WeaponGetFlag")
        CUTM H 0 A_GiveToTarget("CrystalJoeWep")
        goto ClassDeath
    WeaponGetM:
        CUTM H 0 A_JumpIfInTargetInventory("GrabBusterWepM",1,2)
        CUTM H 0 A_GiveToTarget("WeaponGetFlag")
        CUTM H 0 A_GiveToTarget("GrabBusterWepM")
        goto ClassDeath
    WeaponGetB:
        CUTM H 0 A_JumpIfInTargetInventory("GrabBusterWepB",1,2)
        CUTM H 0 A_GiveToTarget("WeaponGetFlag")
        CUTM H 0 A_GiveToTarget("GrabBusterWepB")
        goto ClassDeath
    WeaponGetP:
        CUTM H 0 A_JumpIfInTargetInventory("GrabBusterWepP",1,2)
        CUTM H 0 A_GiveToTarget("WeaponGetFlag")
        CUTM H 0 A_GiveToTarget("GrabBusterWepP")
        goto ClassDeath


The actor seems to have an infinite loop here. It reaches ClassDeath + 1, where A_JumpIfInTargetInventory sends it to WeaponGetM, and at the end it goes back to ClassDeath.

Seriously. Code your mods better. And stop blaming us for your failures.

(0015252)
Fr3ak   
2016-07-10 13:45   
Dusk, that is not the crash we are trying to find the answer to. We already know about the one you just posted and we already fixed it. What we are looking for is how the game will randomly shut off during any time of the game.
(0015253)
Torr Samaho   
2016-07-10 13:53   
This (or something that is also creating an infinite loop in a death state) is the crash that led to your crash log from 0002743:0015232. If your mod has additional crashes, please provide crash logs that point to those.

And if you already knew about this crash and fixed it, why are you sending crash logs of an version of this mod that doesn't have this crash fixed?
(0015255)
Fr3ak   
2016-07-10 14:12   
What I am looking for is an answer to this:'http://static.allfearthesentinel.net/logs/cb61108c2dcb3bbc60e41332a35652c6.txt [^]'
Also, we knew about the MMV crash and fixed it, but we did not release a hotfix yet. That is why I am sending logs of a version with that issue. But there are two crashes. The MMV crash, which I posted in post 0015232, and the random crash, which is found in post 0015244. We already fixed the MMV crash (which is our fault) but not the random crash (which we believe is a Zandronum issue.
(0015256)
Torr Samaho   
2016-07-10 14:33   
To make sure that I didn't misunderstand something: You knew that there are two different crashes, you already knew how to fix one of these crashes and then you send us random crash logs from which you know that they could be caused by either of these two crash reasons without telling us of the known crash?
(0015259)
Fr3ak   
2016-07-10 14:43   
That is right. I accidentally posted a log of the crash we already knew about. At the time of the posting, I didn't know it was caused by that. Had I known, I would not have posted it. The one with Actor SetState is the one we want to find the answer to. That is the one we think is a Zandronum issue.
(0015262)
Edward-san   
2016-07-10 15:09   
The other crash happens only if the server is compiled in debug mode. Disabling the mentioned assertion could be a solution, though it would be nice to know which decorate code triggers it..
(0015265)
Torr Samaho   
2016-07-10 15:41   
Quote from Fr3ak
That is right. I accidentally posted a log of the crash we already knew about. At the time of the posting, I didn't know it was caused by that. Had I known, I would not have posted it.

And you didn't even realize that it has to be the crash you knew about after I pointed to the infinite loop in a death state that starts with A_JumpIfInTargetInventory?

Anyway, make a hotfix that fixes the crash you didn't tell us about and host that with the normal aka non-debug server. If that still crashes, send a new crash log.
(0015270)
Fr3ak   
2016-07-10 16:37   
We are making the hotfix right now as we speak. Also, the server does not give a crash dump when that happens.'http://static.allfearthesentinel.net/logs/da37740d7cee19d54d01ceea348aa39e.txt [^]' This is an example of that.
(0015273)
Torr Samaho   
2016-07-10 18:06   
If 2.1.2 doesn't generate any crash log, please try a 3.0 beta.
(0015274)
Fr3ak   
2016-07-10 20:15   
One problem with that. MM8BDM-v4c.pk3 does not work with Zandronum 3.0 beta.
(0015275)
Torr Samaho   
2016-07-10 21:07   
What's the problem with 3.0? Is there a ticket for it?
(0015276)
Fr3ak   
2016-07-10 21:27   
No ticket. It's just that it was never updated to be compatible with 3.0.
(0015279)
Torr Samaho   
2016-07-11 05:57   
3.0 is supposed to be fully backwards compatible with 2.1.2, so there should be no need to update the mod for 3.0. If there are compatibility problems, it is either a bug (and should be fixed in Zandronum) or one of the breaking changes ZDoom made. In any case, you should report the problems, so that we can see whether it's 3.0's fault.
(0023624)
Ru5tK1ng   
2024-04-17 05:57   
Closing due to lack of feedback from user. If you are still having this crash with 3.1 or the latest 3.2 beta, reopen the ticket.