View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000548 | Gameplay + OpenGL | [All Projects] Bug | public | 2017-04-06 20:05 | 2017-04-08 17:06 |
Reporter | Spie812 | ||||
Assigned To | |||||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | OS | Windows | OS Version | 7, 8.1, 10 | |
Summary | 0000548: Hitting multiple players with BFG hitscans causes a crash. | ||||
Description | Using GZDoom version 2.4.0 Had this happen multiple times playing multiplayer. Shooting the BFG and hitting multiple (2 or more) players with the tracers crashes GZDoom. It works with both real players and with bots. In a Multiplayer LAN game, GZDoom crashes all computers in the game. | ||||
Steps To Reproduce | It seems pretty self-explanatory to me, but I'll leave my config attached if for some reason that helps. | ||||
Tags | GZDoom, Multiplayer | ||||
gzdoom-Spie812.ini (43,986 bytes) |
|
Works in deathmatch, not coop | |
Using 2.4.0 the crash is present but I can't reproduce it with the latest devbuild. Could you please download the recent version from here and give it a try? |
|
using gzdoom-2.5pre-273-gb1e1f25, the most recent version right now, I was still able to reproduce the crash. Crash: https://www.youtube.com/watch?v=o6-jJkPDFRE |
|
That looks like a stack overflow caused by some infinite recursion. | |
Yes, it's something with obituary messages. It happened only on maint2.4 branch for me but apparently the issue is still there. I'll check it again on master a bit later. | |
An infinite recursion was introduced in this commit. To fix the recursion itself this part can be rewritten as
Although I have some problems with matching old and new code. Old version of ClientObituary() did more things which were partly moved to Actor.GetObituary() function. Probably I'm just missing something. |
|
That would pretty much break the entire intent here, i.e. allowing to override GetObituary. The actual condition that causes the recursion needs to be identified and properly handled. |
|
attacker and inflictor are the same object in ClientObituary() function on C++ side. This is the real cause of infinite recursion. I have no clear vision how resolve it. Is it enough just to compare them for inequality? |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2017-04-06 20:05 | Spie812 | New Issue | |
2017-04-06 20:05 | Spie812 | File Added: gzdoom-Spie812.ini | |
2017-04-06 20:05 | Spie812 | Tag Attached: GZDoom | |
2017-04-06 20:05 | Spie812 | Tag Attached: Multiplayer | |
2017-04-06 20:21 | Spie812 | Note Added: 0001266 | |
2017-04-07 02:35 | _mental_ | Status | new => feedback |
2017-04-07 02:35 | _mental_ | Note Added: 0001267 | |
2017-04-07 13:22 | Spie812 | Note Added: 0001273 | |
2017-04-07 13:22 | Spie812 | Status | feedback => new |
2017-04-07 13:55 | Graf Zahl | Note Added: 0001274 | |
2017-04-07 13:59 | _mental_ | Note Added: 0001275 | |
2017-04-08 02:14 | _mental_ | Status | new => confirmed |
2017-04-08 03:38 | _mental_ | Note Added: 0001279 | |
2017-04-08 03:38 | _mental_ | Note Edited: 0001279 | View Revisions |
2017-04-08 10:53 | Graf Zahl | Note Added: 0001281 | |
2017-04-08 13:10 | _mental_ | Note Added: 0001282 | |
2017-04-08 13:20 | _mental_ | Note Edited: 0001282 | View Revisions |
2017-04-08 17:06 | Graf Zahl | Status | confirmed => resolved |
2017-04-08 17:06 | Graf Zahl | Resolution | open => fixed |