MantisBT

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002384VCMIOtherpublic2016-01-18 18:212016-09-04 08:14
Reporteranonymous1 
Assigned ToAVS 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformGNU/Linux 4.2.8-300.fc23.x86_64OSFedoraOS Version23
Product Version0.98f 
Target VersionFixed in Version0.99 
Summary0002384: game crash on load save game
Description(gdb) bt full
#0 0x00007fffc8000098 in ?? ()
No symbol table info available.
#1 0x00007ffff7849076 in CBonusSystemNode::propagateBonus ([email protected]=0x7fffcbb45e98, b=0x7fffcbafd570) at /usr/src/debug/vcmi-0.98f/lib/HeroBonus.cpp:830
        lchildren = std::set with 140736605091712 elements<error reading variable: Cannot access memory at address 0x18>
0000002 0x00007ffff7849342 in CBonusSystemNode::newRedDescendant ([email protected]=0x7fffcbafd688, descendant=0x7fffcbb45e98) at /usr/src/debug/vcmi-0.98f/lib/HeroBonus.cpp:942
        b = <optimized out>
        __for_range = @0x7fffcbafd6b0: {bonuses = std::vector of length 1, capacity 1 = {0x7fffcbafd570}, belongsToTree = false}
        lparents = std::set with 140736610686600 elements<error reading variable: Cannot access memory at address 0x48e8894810894813>
0000003 0x00007ffff7849439 in CBonusSystemNode::attachTo (this=0x7fffcbafd688, parent=<optimized out>, [email protected]=0x7fffcbb45e98) at /usr/src/debug/vcmi-0.98f/lib/HeroBonus.cpp:735
No locals.
0000004 0x00007ffff78ba1fc in CGameState::buildGlobalTeamPlayerTree ([email protected]=0x7fffcb5a7780) at /usr/src/debug/vcmi-0.98f/lib/CGameState.cpp:2746
        p = <optimized out>
        teamMember = <optimized out>
        __for_range = std::set with 1 elements = {[0] = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'}, static CANNOT_DETERMINE = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'},
              static CANNOT_DETERMINE = <same as static member of an already seen type>, static UNFLAGGABLE = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'},
                static CANNOT_DETERMINE = <same as static member of an already seen type>, static UNFLAGGABLE = <same as static member of an already seen type>,
                static NEUTRAL = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'}, static CANNOT_DETERMINE = <same as static member of an already seen type>,
                  static UNFLAGGABLE = <same as static member of an already seen type>, static NEUTRAL = <same as static member of an already seen type>,
                  static PLAYER_LIMIT = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'}, static CANNOT_DETERMINE = <same as static member of an already seen type>,
                    static UNFLAGGABLE = <same as static member of an already seen type>, static NEUTRAL = <same as static member of an already seen type>,
                    static PLAYER_LIMIT = <same as static member of an already seen type>}}, static PLAYER_LIMIT = <same as static member of an already seen type>},
              static NEUTRAL = <same as static member of an already seen type>, static PLAYER_LIMIT = <same as static member of an already seen type>},
            static UNFLAGGABLE = <same as static member of an already seen type>, static NEUTRAL = <same as static member of an already seen type>,
            static PLAYER_LIMIT = <same as static member of an already seen type>}}
        t = 0x7fffcbb45e98
        k = {first = {<BaseForID<TeamID, unsigned char>> = {num = 0 '\000'}, static NO_TEAM = {<BaseForID<TeamID, unsigned char>> = {num = 0 '\000'},
              static NO_TEAM = <same as static member of an already seen type>}}, second = {<CBonusSystemNode> = {<IBonusBearer> = {_vptr.IBonusBearer = <vtable for TeamState+16>}, bonuses = {
                bonuses = std::vector of length 0, capacity 0, belongsToTree = false}, exportedBonuses = {bonuses = std::vector of length 0, capacity 0, belongsToTree = false},
              parents = std::vector of length 1, capacity 1 = {}, children = std::vector of length 0, capacity 0, nodeType = CBonusSystemNode::TEAM, description = "", static cachingEnabled = true,
              cachedBonuses = {bonuses = std::vector of length 0, capacity 0, belongsToTree = false}, cachedLast = 0, static treeChanged = 84459, cachedRequests = std::map with 0 elements},
            id = {<BaseForID<TeamID, unsigned char>> = {num = 0 '\000'}, static NO_TEAM = {<BaseForID<TeamID, unsigned char>> = {num = 0 '\000'},
                static NO_TEAM = <same as static member of an already seen type>}}, players = std::set with 1 elements = {[0] = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'},
                static CANNOT_DETERMINE = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'}, static CANNOT_DETERMINE = <same as static member of an already seen type>,
                  static UNFLAGGABLE = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'}, static CANNOT_DETERMINE = <same as static member of an already seen type>,
                    static UNFLAGGABLE = <same as static member of an already seen type>, static NEUTRAL = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'},
                      static CANNOT_DETERMINE = <same as static member of an already seen type>, static UNFLAGGABLE = <same as static member of an already seen type>,
                      static NEUTRAL = <same as static member of an already seen type>, static PLAYER_LIMIT = {<BaseForID<PlayerColor, unsigned char>> = {num = 0 '\000'},
                        static CANNOT_DETERMINE = <same as static member of an already seen type>, static UNFLAGGABLE = <same as static member of an already seen type>,
                        static NEUTRAL = <same as static member of an already seen type>, static PLAYER_LIMIT = <same as static member of an already seen type>}},
                    static PLAYER_LIMIT = <same as static member of an already seen type>}, static NEUTRAL = <same as static member of an already seen type>,
                  static PLAYER_LIMIT = <same as static member of an already seen type>}, static UNFLAGGABLE = <same as static member of an already seen type>,
                static NEUTRAL = <same as static member of an already seen type>, static PLAYER_LIMIT = <same as static member of an already seen type>}}, fogOfWarMap = std::vector of length 72, capacity 72 = {
              std::vector of length 72, capacity 72 = {std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
---Type <return> to continue, or q <return> to quit---
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}}, std::vector of length 72, capacity 72 = {std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}}, std::vector of length 72, capacity 72 = {
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
                std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'}, std::vector of length 2, capacity 2 = {1 '\001', 0 '\000'},
---Type <return> to continue, or q <return> to quit---std::vector of Quit
(gdb)
Steps To Reproduce1) run vcmiclient
2) load save game Autosave_2
TagsNo tags attached.
Attached Files? file icon Autosave_2.tar.xz [^] (607,264 bytes) 2016-01-18 18:21

- Relationships
duplicate of 0002314resolvedAVS Crashes related to bonus system in deserializationFix 

-  Notes
(0006302)
SXX (administrator)
2016-01-18 18:37

This problem is already fixed, but it's not yet merged into mainline as it's will break save format. Fix going to be included with next stable release.
(0006614)
SXX (administrator)
2016-09-04 08:14

Fixed by PR202. For more details or comments please check 0002314

- Issue History
Date Modified Username Field Change
2016-01-18 18:21 anonymous1 New Issue
2016-01-18 18:21 anonymous1 File Added: Autosave_2.tar.xz
2016-01-18 18:34 SXX Relationship added duplicate of 0002314
2016-01-18 18:37 SXX Note Added: 0006302
2016-09-04 08:14 SXX Note Added: 0006614
2016-09-04 08:14 SXX Status new => resolved
2016-09-04 08:14 SXX Fixed in Version => 0.99
2016-09-04 08:14 SXX Resolution open => fixed
2016-09-04 08:14 SXX Assigned To => AVS

Site | Forums | Wiki | Slack | GitHub


Copyright © 2000 - 2018 MantisBT Team
Hosting provided by DigitalOcean