Project

General

Profile

Bug #2275

[Hexen] SIGSEGV in Mobj_PrivateID when returning from Wastelands to Shadow Wood

Added by sermayen over 6 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Defect
Target version:
Start date:
2018-07-31
% Done:

100%


Description

This always happens when i'm trying to return from the Wastelands to Shadow Wood Level. Doomsday Version 2.1 Build #2767. Backtrace follows:

#0  0x00007effb1d5f86c in Mobj_PrivateID (mob=0x2b041430) at /home/chris/sources/Doomsday-Engine/doomsday/apps/plugins/common/src/world/mobj.cpp:242
        td = 0x1
#1  0x00007effb1d614a9 in Mobj_StateAsInfo (mob=0x7effc22f5d58) at /home/chris/sources/Doomsday-Engine/doomsday/apps/plugins/common/src/world/mobj.cpp:1085
        str = {static null = {<No data fields>}, d = 0x562e120bfcb0}
        os = <incomplete type>
#2  0x0000562dfa30439b in world::Map::<lambda(thinker_t*)>::operator()(thinker_t *) const (__closure=0x7ffd2e6c1270, th=0x7effc22f5d58)
    at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/world/base/map.cpp:3126
        os = @0x7ffd2e6c1260: <incomplete type>
#3  0x0000562dfa30b80e in std::_Function_handler<de::LoopResult(thinker_s*), world::Map::objectsDescription() const::<lambda(thinker_t*)> >::_M_invoke(const std::_Any_data &, thinker_s *&&) (__functor=..., __args#0=@0x7ffd2e6c11b0: 0x7effc22f5d58) at /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/bits/std_function.h:301
No locals.
#4  0x0000562dfa350aaf in std::function<de::LoopResult (thinker_s*)>::operator()(thinker_s*) const (this=0x7ffd2e6c1270, __args#0=0x7effc22f5d58)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/bits/std_function.h:706
No locals.
#5  0x0000562dfa34e83f in world::Thinkers::forAll(unsigned char, std::function<de::LoopResult (thinker_s*)>) const (this=0x7effb40a90b0, flags=3 '\003', func=...)
    at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/world/base/thinkers.cpp:351
        result = {value = 0}
        next = 0x7effc22f5f98
        list = 0x7effb5e9fd40
        th = 0x7effc22f5d58
        i = 0
#6  0x0000562dfa30449c in world::Map::objectsDescription (this=0x562dfc792a50) at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/world/base/map.cpp:3122
        str = {<QString> = {static null = {<No data fields>}, d = 0x562e11f69f10}, static npos = -1}
        os = <incomplete type>
#7  0x0000562df9ffba0a in ClientApp::gameSessionWasSaved (this=0x7ffd2e6c3220, session=..., toFolder=...)
    at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/clientapp.cpp:754
        file = @0x562e03a0feb0: {<de::filesys::Node> = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {_M_mutex = {__data = {__lock = 0, __count = 0, 
                      __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, 
                    __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, <de::Deletable> = {
              _vptr.Deletable = 0x7efff51d9368 <vtable for de::ArchiveEntryFile+16>, audienceForDeletion = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {
                      _M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, 
                            __next = 0x0}}, __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, <de::IAudience> = {
                  _vptr.IAudience = 0x562dfa760818 <vtable for de::Observers<de::Deletable::IDeletionObserver>+16>}, _members = {<de::PointerSet> = {
                    static AllowInsertionDuringIteration = 32768, _pointers = 0x562e03a1c790, _iterationObserver = 0x0, _flags = 0, _size = 2, _range = {start = 1, 
                      end = 2}}, <No data fields>}}}, d = {ptr = 0x562e03a27440}}, <de::IIOStream> = {<de::IIStream> = {
              _vptr.IIStream = 0x7efff51d9420 <vtable for de::ArchiveEntryFile+200>}, <de::IOStream> = {
              _vptr.IOStream = 0x7efff51d9450 <vtable for de::ArchiveEntryFile+248>}, <No data fields>}, <de::IObject> = {
            _vptr.IObject = 0x7efff51d9478 <vtable for de::ArchiveEntryFile+288>}, d = {ptr = 0x562e120bd7c0}}
        mapId = {<QString> = {static null = {<No data fields>}, d = 0x7effdc019db0}, static npos = -1}
#8  0x00007effb1d1e39c in common::GameSession::Impl::serializeCurrentMapState (this=0x562dfd3b8f20, dest=..., saveFolder=..., excludePlayers=false)
    at /home/chris/sources/Doomsday-Engine/doomsday/apps/plugins/common/src/game/gamesession.cpp:252
        data = {<QByteArray> = {d = 0x562e12115e30}, <de::IByteArray> = {_vptr.IByteArray = 0x7efff51d52b0 <vtable for de::Block+16>}, <de::IBlock> = {
            _vptr.IBlock = 0x7efff51d5318 <vtable for de::Block+120>}, <de::ISerializable> = {<de::IWritable> = {
              _vptr.IWritable = 0x7efff51d5358 <vtable for de::Block+184>}, <de::IReadable> = {
              _vptr.IReadable = 0x7efff51d5380 <vtable for de::Block+224>}, <No data fields>}, <No data fields>}
        writer = 0x562e120bdbb0
        mapStateWriter = {d = {ptr = 0x562e121013d0}}
#9  0x00007effb1d1bd4d in common::GameSession::leaveMap (this=0x7effb1ff9620 <common::theSession>, nextMapUri=..., nextMapEntryPoint=3)
    at /home/chris/sources/Doomsday-Engine/doomsday/apps/plugins/common/src/game/gamesession.cpp:1307
        metadata = {<de::Record> = {<de::RecordAccessor> = {_rec = 0x7ffd2e6c14b0}, <de::ISerializable> = {<de::IWritable> = {
                _vptr.IWritable = 0x7efff7e8b430 <vtable for GameStateFolder::Metadata+16>}, <de::IReadable> = {
                _vptr.IReadable = 0x7efff7e8b470 <vtable for GameStateFolder::Metadata+80>}, <No data fields>}, <de::LogEntry::Arg::Base> = {
              _vptr.Base = 0x7efff7e8b498 <vtable for GameStateFolder::Metadata+120>}, static VAR_SUPER = {<QString> = {static null = {<No data fields>}, 
                d = 0x562dfc498640}, static npos = -1}, static VAR_FILE = {<QString> = {static null = {<No data fields>}, d = 0x562dfc498680}, static npos = -1}, 
            static VAR_INIT = {<QString> = {static null = {<No data fields>}, d = 0x562dfc498f10}, static npos = -1}, static VAR_NATIVE_SELF = {<QString> = {
                static null = {<No data fields>}, d = 0x562dfc499040}, static npos = -1}, d = {ptr = 0x562e120befb0}}, <No data fields>}
        mapsFolder = @0x562dfda29ce0: {<de::File> = {<de::filesys::Node> = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {_M_mutex = {__data = {
                        __lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, 
                      __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, <de::Deletable> = {
                _vptr.Deletable = 0x7efff51da680 <vtable for de::Folder+16>, audienceForDeletion = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {
                        _M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, 
                              __next = 0x0}}, __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, 
                          __align = 0}}, <No data fields>}}, <de::IAudience> = {
                    _vptr.IAudience = 0x562dfa760818 <vtable for de::Observers<de::Deletable::IDeletionObserver>+16>}, _members = {<de::PointerSet> = {
                      static AllowInsertionDuringIteration = 32768, _pointers = 0x562e03a0e280, _iterationObserver = 0x0, _flags = 0, _size = 2, _range = {start = 1, 
                        end = 2}}, <No data fields>}}}, d = {ptr = 0x562e03a2c080}}, <de::IIOStream> = {<de::IIStream> = {
                _vptr.IIStream = 0x7efff51da738 <vtable for de::Folder+200>}, <de::IOStream> = {
                _vptr.IOStream = 0x7efff51da768 <vtable for de::Folder+248>}, <No data fields>}, <de::IObject> = {
              _vptr.IObject = 0x7efff51da790 <vtable for de::Folder+288>}, d = {ptr = 0x562dfda1c760}}, d = {ptr = 0x562e01aeaf20}}
        outFile = @0x562e03a0fbf0: {<de::filesys::Node> = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {_M_mutex = {__data = {__lock = 0, __count = 0, 
                      __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, 
                    __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, <de::Deletable> = {
              _vptr.Deletable = 0x7efff51d9368 <vtable for de::ArchiveEntryFile+16>, audienceForDeletion = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {
                      _M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, 
                            __next = 0x0}}, __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, <de::IAudience> = {
                  _vptr.IAudience = 0x562dfa760818 <vtable for de::Observers<de::Deletable::IDeletionObserver>+16>}, _members = {<de::PointerSet> = {
                    static AllowInsertionDuringIteration = 32768, _pointers = 0x562e11fd0080, _iterationObserver = 0x0, _flags = 0, _size = 2, _range = {start = 1, 
                      end = 2}}, <No data fields>}}}, d = {ptr = 0x562e03a10760}}, <de::IIOStream> = {<de::IIStream> = {
              _vptr.IIStream = 0x7efff51d9420 <vtable for de::ArchiveEntryFile+200>}, <de::IOStream> = {
              _vptr.IOStream = 0x7efff51d9450 <vtable for de::ArchiveEntryFile+248>}, <No data fields>}, <de::IObject> = {
            _vptr.IObject = 0x7efff51d9478 <vtable for de::ArchiveEntryFile+288>}, d = {ptr = 0x562e00162fb0}}
        playerBackup = {{player = {plr = 0x562dfc5b84d8, playerState = PST_LIVE, class_ = PCLASS_MAGE, brain = {forwardMove = 1, sideMove = 0, upMove = 0, 
                changeWeapon = 5, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, jump = 0, mapToggle = 0, 
                mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, useInvItem = 0, 
                logRefresh = 0}, flyHeight = 0, health = 100, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 256, pieces = 4, 
              readyWeapon = WT_THIRD, pendingWeapon = WT_NOCHANGE, weapons = {{owned = 1}, {owned = 1}, {owned = 1}, {owned = 0}}, ammo = {{owned = 173}, {owned = 51}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x7effc2dc1c80, colorMap = 0, pSprites = {{state = 0x7eff1e274db0, tics = 1, pos = {
                    -2.11523438, 47.6936035}}, {state = 0x0, tics = 0, pos = {-2.11523438, 47.6936035}}}, morphTics = 0, jumpTics = 0, airCounter = -299, 
              rebornWait = 0, centering = 0, worldTimer = 327157, update = 16400, startSpot = 0, overridePalette = 0, viewOffset = {0, 0, -0.00915527344}, viewZ = 256, 
              viewHeight = 48, viewHeightDelta = 0, bob = 16, viewLock = 0x0, lockFull = 0}, numInventoryItems = {9, 1, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2, 
              0 <repeats 17 times>}, readyItem = IIT_HEALTH}, {player = {plr = 0x562dfc527ad8, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}, {player = {plr = 0x562dfc6722d8, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}, {player = {plr = 0x562dfc59d648, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}, {player = {plr = 0x562dfc6b2818, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}, {player = {plr = 0x562dfc6b6628, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}, {player = {plr = 0x562dfc6f7818, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}, {player = {plr = 0x562dfc791de8, playerState = PST_LIVE, class_ = PCLASS_FIRST, brain = {forwardMove = 0, 
                sideMove = 0, upMove = 0, changeWeapon = 0, cycleWeapon = 0, cycleInvItem = 0, speed = 0, use = 0, lunge = 0, attack = 0, lookCenter = 0, fallDown = 0, 
                jump = 0, mapToggle = 0, mapZoomMax = 0, mapFollow = 0, mapRotate = 0, mapMarkAdd = 0, mapMarkClearAll = 0, hudShow = 0, scoreShow = 0, doReborn = 0, 
                useInvItem = 0, logRefresh = 0}, flyHeight = 0, health = 0, armorPoints = {0, 0, 0, 0}, powers = {0, 0, 0, 0, 0, 0, 0, 0, 0}, keys = 0, pieces = 0, 
              readyWeapon = WT_FIRST, pendingWeapon = WT_FIRST, weapons = {{owned = 0}, {owned = 0}, {owned = 0}, {owned = 0}}, ammo = {{owned = 0}, {owned = 0}}, 
              attackDown = 0, useDown = 0, cheats = 0, frags = {0, 0, 0, 0, 0, 0, 0, 0}, refire = 0, killCount = 0, itemCount = 0, secretCount = 0, damageCount = 0, 
              bonusCount = 0, poisonCount = 0, poisoner = 0x0, attacker = 0x0, colorMap = 0, pSprites = {{state = 0x0, tics = 0, pos = {0, 0}}, {state = 0x0, tics = 0, 
                  pos = {0, 0}}}, morphTics = 0, jumpTics = 0, airCounter = 0, rebornWait = 0, centering = 0, worldTimer = 0, update = 2048, startSpot = 0, 
              overridePalette = 0, viewOffset = {0, 0, 0}, viewZ = 0, viewHeight = 0, viewHeightDelta = 0, bob = 0, viewLock = 0x0, lockFull = 0}, numInventoryItems = {
              0 <repeats 33 times>}, readyItem = IIT_NONE}}
        oldRandomClassesRule = 1 '\001'
        saved = 0x562e03a0c750
        revisit = true
#10 0x00007effb1d0e93b in runGameAction () at /home/chris/sources/Doomsday-Engine/doomsday/apps/plugins/common/src/game/g_game.cpp:1427
        quitTime = 0
        unloadTriggered = false
        currentAction = GA_LEAVEMAP
#11 0x00007effb1d0f8eb in G_Ticker (ticLength=0.0054285714285916657) at /home/chris/sources/Doomsday-Engine/doomsday/apps/plugins/common/src/game/g_game.cpp:1614
        oldGameState = GS_MAP
#12 0x0000562dfa00fc3d in baseTicker (time=0.0054285714285916657) at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/dd_loop.cpp:177
No locals.
#13 0x0000562dfa01048d in Loop_RunTics () at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/dd_loop.cpp:426
        nowTime = 194.59700000000001
        elapsedTime = 0
#14 0x0000562dfa28bd8f in GameWidget::update (this=0x562dfde37d50) at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/ui/widgets/gamewidget.cpp:290
No locals.
#15 0x00007efff4ef2d25 in de::Widget::notifyTree (this=0x562dfde2c758, args=...) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libcore/src/widgets/widget.cpp:641
        i = 0x562dfde37d60
        idx = 0
        result = de::Widget::NotifyArgs::Continue
        preNotified = false
#16 0x00007efff4eeb1a3 in de::RootWidget::update (this=0x562dfde2c758) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libcore/src/widgets/rootwidget.cpp:157
No locals.
#17 0x00007efff7ffdbee in de::GuiRootWidget::update (this=0x562dfde2c758) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libappfw/src/guirootwidget.cpp:431
No locals.
#18 0x0000562dfa1a7ed3 in ClientRootWidget::update (this=0x562dfde2c758) at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/ui/clientrootwidget.cpp:53
No locals.
#19 0x0000562dfa1b3412 in ClientWindowSystem::rootUpdate (this=0x562dfdc20cb0)
    at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/ui/clientwindowsystem.cpp:96
No locals.
#20 0x00007efff8022f4f in de::WindowSystem::timeChanged (this=0x562dfdc20cb0) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libappfw/src/windowsystem.cpp:172
No locals.
#21 0x00007efff4d6ee18 in de::App::timeChanged (this=0x7ffd2e6c3230, clock=...) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libcore/src/core/app.cpp:533
        sys = 0x562dfdc20cb0
        _container_ = {c = {<QListSpecialMethods<de::System*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {
                      _q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, 
                d = 0x562dfdde6830}, d = 0x562dfdde6830}}, i = {i = 0x562dfdde6868}, e = {i = 0x562dfdde6880}, control = 1}
#22 0x00007efff4d7fab1 in de::Clock::setTime (this=0x562dfc789df0, currentTime=...) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libcore/src/core/clock.cpp:57
        i = {<de::PointerSet::IIterationObserver> = {_vptr.IIterationObserver = 0x7efff51d3308 <vtable for de::Observers<de::Clock::ITimeChangeObserver>::Loop+16>}, 
          _audience = 0x562dfc6d8df8, _prevObserver = 0x0, _current = 0x562dfdb36908, _next = 0x562dfdb36910}
        changed = true
#23 0x00007efff6d77d06 in de::GuiApp::loopIteration (this=0x7ffd2e6c3220) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libgui/src/guiapp.cpp:160
No locals.
#24 0x00007efff4d9ede0 in de::Loop::nextLoopIteration (this=0x562dfc767cc8) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libcore/src/core/loop.cpp:129
        i = {<de::PointerSet::IIterationObserver> = {_vptr.IIterationObserver = 0x7efff51d3e30 <vtable for de::Observers<de::Loop::IIterationObserver>::Loop+16>}, 
          _audience = 0x562dfc790bf8, _prevObserver = 0x0, _current = 0x562dfd73f488, _next = 0x562dfd73f490}
#25 0x00007efff6d78f36 in de::GuiLoop::nextLoopIteration (this=0x562dfc767cc8) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libgui/src/guiloop.cpp:50
No locals.
#26 0x00007efff4ef9a72 in de::Loop::qt_static_metacall (_o=0x562dfc767cc8, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffd2e6c2b40)
    at /home/chris/sources/doomsday-build/sdk/libcore/libcore_autogen/LCME76G63D/moc_loop.cpp:71
        _t = 0x562dfc767cc8
#27 0x00007efff431964d in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#28 0x00007efff4326327 in QTimer::timeout(QTimer::QPrivateSignal) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#29 0x00007efff4326688 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#30 0x00007efff431a14b in QObject::event(QEvent*) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#31 0x00007efff5fc795c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
No symbol table info available.
#32 0x00007efff5fcedf6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
No symbol table info available.
#33 0x00007efff6d778d5 in de::GuiApp::notify (this=0x7ffd2e6c3220, receiver=0x562dfc640540, event=0x7ffd2e6c2eb0)
    at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libgui/src/guiapp.cpp:99
No locals.
#34 0x00007efff42ea218 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#35 0x00007efff434333e in QTimerInfoList::activateTimers() () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#36 0x00007efff4343b51 in ?? () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#37 0x00007effed7bf5a7 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#38 0x00007effed7bf810 in ?? () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#39 0x00007effed7bf8bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#40 0x00007efff4343eef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#41 0x00007efff42e825a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#42 0x00007efff42f13b4 in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
No symbol table info available.
#43 0x00007efff6d77a93 in de::GuiApp::execLoop (this=0x7ffd2e6c3220) at /home/chris/sources/Doomsday-Engine/doomsday/sdk/libgui/src/guiapp.cpp:122
        code = 0
#44 0x0000562dfa0392bd in main (argc=1, argv=0x7ffd2e6c33f8) at /home/chris/sources/Doomsday-Engine/doomsday/apps/client/src/main_client.cpp:121
        clientApp = {<de::BaseGuiApp> = {<de::GuiApp> = {<QApplication> = {<No data fields>}, <de::App> = {<de::Clock::ITimeChangeObserver> = {<de::ObserverBase> = {
                    _vptr.ObserverBase = 0x562dfa77d008 <vtable for ClientApp+248>, _memberOf = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {
                            _M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, 
                                  __next = 0x0}}, __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, 
                      value = {<de::PointerSet> = {static AllowInsertionDuringIteration = 32768, _pointers = 0x562dfdb44440, _iterationObserver = 0x0, _flags = 0, 
                          _size = 2, _range = {start = 1, end = 2}}, <No data fields>}}}, <No data fields>}, d = {
                  ptr = 0x562dfc789ca0}}, <de::Loop::IIterationObserver> = {<de::ObserverBase> = {_vptr.ObserverBase = 0x562dfa77d060 <vtable for ClientApp+336>, 
                  _memberOf = {<de::Lockable> = {_mutex = {<std::__recursive_mutex_base> = {_M_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, 
                              __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, 
                            __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, <No data fields>}}, value = {<de::PointerSet> = {
                        static AllowInsertionDuringIteration = 32768, _pointers = 0x562dfc790cf0, _iterationObserver = 0x0, _flags = 0, _size = 2, _range = {start = 1, 
                          end = 2}}, <No data fields>}}}, <No data fields>}, static staticMetaObject = {d = {
                  superdata = 0x7efff671c040 <QApplication::staticMetaObject>, stringdata = 0x7efff7044bc0 <qt_meta_stringdata_de__GuiApp>, 
                  data = 0x7efff7044c40 <qt_meta_data_de__GuiApp>, 
                  static_metacall = 0x7efff6e101a2 <de::GuiApp::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                  extradata = 0x0}}, d = {ptr = 0x562dfc767cb0}}, d = {ptr = 0x562dfc49e8f0}}, <DoomsdayApp> = {
            _vptr.DoomsdayApp = 0x562dfa77d088 <vtable for ClientApp+376>, d = {ptr = 0x562dfc70ac00}}, static staticMetaObject = {d = {
              superdata = 0x7efff738b9a0 <de::GuiApp::staticMetaObject>, stringdata = 0x562dfa408d60 <qt_meta_stringdata_ClientApp>, 
              data = 0x562dfa408e20 <qt_meta_data_ClientApp>, 
              static_metacall = 0x562dfa387022 <ClientApp::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, 
          d = {ptr = 0x562dfc756760}}
        exitCode = 0
        __PRETTY_FUNCTION__ = "int main(int, char**)" 

Related issues

Related to Bug #2276: [HEXEN] SIGABRT when returning from Wastelands to Darkmere through the ?Castle? PortalClosed2018-08-04

Associated revisions

Revision 985a15f4 (diff)
Added by skyjake over 6 years ago

World|SaveGame: Restore and check state of as many objects as possible

A discrepancy during object state restoration does not halt the entire
process, but only causes a warning to be logged.

Fixes a crash in Hexen where the Mage's lightning weapon mobjs had their
lastEnemy pointer restored to an unmangled pointer value (that had been
truncated from 64 to 32 bits, no less), causing illegal memory access
when switching maps.

Suspiciously, some objects are still being reported as having lost their
targets, which does warrant further investigation.

IssueID #2275

History

#1 Updated by skyjake over 6 years ago

  • Category set to Defect
  • Assignee set to skyjake
  • Priority changed from Normal to High

#2 Updated by skyjake over 6 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

#3 Updated by skyjake over 6 years ago

  • Related to Bug #2261: Mobj cross-references not always fully restored after loading a save added

#4 Updated by skyjake over 6 years ago

  • Related to deleted (Bug #2261: Mobj cross-references not always fully restored after loading a save)

#5 Updated by sermayen over 6 years ago

Rev 985a15f4 fixed it. Thanks !

#6 Updated by skyjake over 6 years ago

  • Related to Bug #2276: [HEXEN] SIGABRT when returning from Wastelands to Darkmere through the ?Castle? Portal added

#7 Updated by skyjake about 6 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF