View Issue Details

IDProjectCategoryView StatusLast Update
0000214Gameplay + OpenGL[All Projects] Bugpublic2017-02-09 09:11
ReporterDoomKrakken 
Assigned To 
PriorityurgentSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Summary0000214: Guncaster not working on the latest 2.8 build...
DescriptionI'm getting hit with a massive blizzard of error messages whenever I run Guncaster. I'm using GZDoom x64 2.4 pre-359.

Here are a few examples...

- Unknown class name <insert classname> of type 'Inventory'
- Truncation of floating point constant <insert float number>
- Self pointer used in ambiguous context; VM execution may abort!

A few specific ones...

Class PowerRunDamage1 referenced but not defined
Class PowerTomeEffect referenced but not defined
Class PowerGunzerking referenced but not defined
Class PowerBerserkDamage referenced but not defined

Execution could not continue.

4 errors during actor postprocessing

Help? :(
Steps To ReproduceSimple. Run the latest version of Guncaster with the latest version of GZDoom.
Additional InformationCould all of this be due to the new ZScript format?
TagsDECORATE, Guncaster, ZScript

Relationships

Activities

Lud

Lud

2017-02-09 03:11

reporter   ~0000454

That's anything but an engine bug. And shouldn't be marked with urgent. You can fix these mod-side.
DoomKrakken

DoomKrakken

2017-02-09 03:48

reporter   ~0000455

Last edited: 2017-02-09 03:52

View 2 revisions

Then I'm sure you can tell me what the hell just happened... 'cuz I have absolutely no clue!

I didn't change anything between switching GZDoom versions, and it ran in the version I was using before (and still runs)... but now that I switched GZDoom up and craps out on me. If you're saying I can fix it via simple modding, then how do I do it?

_mental_

_mental_

2017-02-09 04:06

developer   ~0000456

Last edited: 2017-02-09 04:21

View 2 revisions

Using the latest commit it starts fine.
Lots of warnings are still there but most likely they need to be fixed in the mod itself.
'Most likely' because using Debug configuration I'm getting this:
Assertion failed: (lobj == nullptr || !(lobj->ObjectFlags & OF_Released)), function Mark, 
file src/dobjgc.cpp, line 289.

It's not related to Guncaster and will be fixed in the engine.

Graf Zahl

Graf Zahl

2017-02-09 04:26

administrator   ~0000458

That assert means that some unmanaged object slipped back into the garbage collector.
_mental_

_mental_

2017-02-09 04:35

developer   ~0000459

The assert happens without any mods, just finish a level in any game and it will be triggered.
Graf Zahl

Graf Zahl

2017-02-09 04:44

administrator   ~0000460

The breaking issue was fixed, the assert will have to wait until I see it myself - if it wasn't the ReadyWeapon issue I last fixed yesterday evening.
Graf Zahl

Graf Zahl

2017-02-09 04:45

administrator   ~0000461

If you get the assert again, please try to find out a bit more about the object that triggered it and where the call originated.
DoomKrakken

DoomKrakken

2017-02-09 04:49

reporter   ~0000463

Last edited: 2017-02-09 04:53

View 2 revisions

Can I download that version of GZDoom, then? If so, where?

Or is it not available yet?

Thanks for getting to this... :D

_mental_

_mental_

2017-02-09 04:59

developer   ~0000464

Here is the callstack I've got upon entering Doom II MAP02 from MAP01:
GC::Mark(obj=0x00000001050ef028) + 113 at dobjgc.cpp:289
DObject::PropagateMark(this=0x00000001050eec00) + 133 at dobject.cpp:407
DThinker::PropagateMark(this=0x00000001050eec00) + 305 at dthinker.cpp:580
AActor::PropagateMark(this=0x00000001050eec00) + 120 at a_dynlight.cpp:783
GC::PropagateMark() + 135 at dobjgc.cpp:194
GC::SingleStep() + 94 at dobjgc.cpp:438
GC::FullGC() + 111 at dobjgc.cpp:539
DThinker::DestroyAllThinkers() + 132 at dthinker.cpp:431
P_FreeLevelData() + 135 at p_setup.cpp:3451
P_SetupLevel(lumpname="MAP02", position=0) + 763 at p_setup.cpp:3632
G_DoLoadLevel(position=0, autosave=true) + 1060 at g_level.cpp:1015
G_DoWorldDone() + 127 at g_level.cpp:1175
G_Ticker() + 654 at g_game.cpp:1102
TryRunTics() + 1147 at d_net.cpp:1947
D_DoomLoop() + 638 at d_main.cpp:1017
D_DoomMain() + 6803 at d_main.cpp:2687

Actor's class is Pistol.
_mental_

_mental_

2017-02-09 08:51

developer   ~0000471

It's a sort of double free issue: GC::Mark() is called twice at least for inventory classes.
The first one is from player's garbage collection:
GC::Mark(obj=0x00007fff5fbfc730) + 116 at dobjgc.cpp:289
GC::Mark<AWeapon>(obj=0x0000000100d0ff70) + 35 at dobject.h:322
player_t::PropagateMark(this=0x0000000100d0fea0) + 105 at p_user.cpp:467
GC::MarkRoot() + 353 at dobjgc.cpp:367
GC::FullGC() + 93 at dobjgc.cpp:548
DThinker::DestroyAllThinkers() + 132 at dthinker.cpp:431
P_FreeLevelData() + 135 at p_setup.cpp:3451
P_SetupLevel(lumpname="E1M2", position=0) + 763 at p_setup.cpp:3632
G_DoLoadLevel(position=0, autosave=true) + 1060 at g_level.cpp:1015
G_DoWorldDone() + 127 at g_level.cpp:1175

The second one is from flat pointers list:
GC::Mark(obj=0x000060800010b728) + 116 at dobjgc.cpp:289
DObject::PropagateMark(this=0x000060800010b6d0) + 133 at dobject.cpp:407
GC::PropagateMark() + 135 at dobjgc.cpp:194
GC::SingleStep() + 94 at dobjgc.cpp:450
GC::FullGC() + 111 at dobjgc.cpp:551
DThinker::DestroyAllThinkers() + 132 at dthinker.cpp:431
P_FreeLevelData() + 135 at p_setup.cpp:3451
P_SetupLevel(lumpname="E1M2", position=0) + 763 at p_setup.cpp:3632
G_DoLoadLevel(position=0, autosave=true) + 1060 at g_level.cpp:1015
G_DoWorldDone() + 127 at g_level.cpp:1175

Is it correct behavior to collect those objects twice?
Graf Zahl

Graf Zahl

2017-02-09 09:09

administrator   ~0000472

GC::Mark can be called many times for the same actor. It shouldn't do anything when trying to mark an already marked object again.


And can we please do this on a separate ticket? This one has been resolved.
Graf Zahl

Graf Zahl

2017-02-09 09:11

administrator   ~0000473

And if I am not mistaken I got this already fixed. AActor declared 2 pointers to classes which I missed when deleting the others.

Issue History

Date Modified Username Field Change
2017-02-08 21:45 DoomKrakken New Issue
2017-02-08 21:45 DoomKrakken Tag Attached: DECORATE Guncaster ZScript
2017-02-09 00:05 DoomKrakken Tag Detached: DECORATE Guncaster ZScript
2017-02-09 00:05 DoomKrakken Tag Attached: DECORATE
2017-02-09 00:05 DoomKrakken Tag Attached: ZScript
2017-02-09 00:05 DoomKrakken Tag Attached: Guncaster
2017-02-09 03:11 Lud Note Added: 0000454
2017-02-09 03:48 DoomKrakken Note Added: 0000455
2017-02-09 03:52 DoomKrakken Note Edited: 0000455 View Revisions
2017-02-09 04:06 _mental_ Note Added: 0000456
2017-02-09 04:21 _mental_ Note Edited: 0000456 View Revisions
2017-02-09 04:26 Graf Zahl Note Added: 0000458
2017-02-09 04:35 _mental_ Note Added: 0000459
2017-02-09 04:44 Graf Zahl Status new => resolved
2017-02-09 04:44 Graf Zahl Resolution open => fixed
2017-02-09 04:44 Graf Zahl Note Added: 0000460
2017-02-09 04:45 Graf Zahl Note Added: 0000461
2017-02-09 04:49 DoomKrakken Note Added: 0000463
2017-02-09 04:53 DoomKrakken Note Edited: 0000463 View Revisions
2017-02-09 04:59 _mental_ Note Added: 0000464
2017-02-09 08:51 _mental_ Note Added: 0000471
2017-02-09 08:52 _mental_ Status resolved => needs review
2017-02-09 09:09 Graf Zahl Note Added: 0000472
2017-02-09 09:10 Graf Zahl Status needs review => resolved
2017-02-09 09:11 Graf Zahl Note Added: 0000473