MantisBT

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000823VCMIMechanics - Objectspublic2011-09-28 07:212014-05-30 17:40
Reporterq4a 
Assigned ToTow 
PrioritynormalSeveritycrashReproducibilityalways
StatusclosedResolutionfixed 
PlatformWindowsOSWindows XPOS VersionSP3
Product Version 
Target VersionFixed in Version0.89 
Summary0000823: Artifact "Vial of Dragon Blood" freeze game
DescriptionArtifact "Vial of Dragon Blood" freeze game. No error, no log message, just sandglass. Tested on r2401, built with vc10 express.
Steps To Reproduce1.Start any map.
2.Get all artifacts by cheat: vcmiforgeofnoldorking
3.Put on artifact "Vial of Dragon Blood".
4.Exit hero screen.
5.Double click on the same hero and you get frozen game.
TagsNo tags attached.
Attached Files

- Relationships
related to 0000764closedbeegee Random crashes thanks to bonus system 
has duplicate 0000859closedTow Golden Bow causes freeze when aiming at creatures 

-  Notes
(0002074)
ubuntux (developer)
2011-09-29 00:30

CBonusSystemNode::getAllBonuses takes a lock and recursively calls itself.

#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1 0x00007f9938668849 in _L_lock_953 () from /lib/libpthread.so.0
0000002 0x00007f993866866b in __pthread_mutex_lock (mutex=0x7f993b98d760) at pthread_mutex_lock.c:61
0000003 0x000000000051222a in boost::mutex::lock (this=0x7f993b98d760)
    at /usr/include/boost/thread/pthread/mutex.hpp:50
0000004 0x0000000000514174 in boost::unique_lock<boost::mutex>::lock (this=0x7f992a92ee90)
    at /usr/include/boost/thread/locks.hpp:349
0000005 0x00000000005140c1 in boost::unique_lock<boost::mutex>::unique_lock (this=0x7f992a92ee90, m_=...)
    at /usr/include/boost/thread/locks.hpp:227
0000006 0x00007f993b58d892 in CBonusSystemNode::getAllBonuses (this=0x3e9e168, selector=..., limit=..., root=0x0,
    cachingStr=...) at HeroBonus.cpp:488
0000007 0x00007f993b58c426 in IBonusBearer::getBonuses (this=0x3e9e168, selector=..., cachingStr=...)
    at HeroBonus.cpp:308
0000008 0x00007f993b58bd14 in IBonusBearer::hasBonus (this=0x3e9e168, selector=..., cachingStr=...)
    at HeroBonus.cpp:268
0000009 0x00007f993b58bf15 in IBonusBearer::hasBonusOfType (this=0x3e9e168, type=Bonus::DRAGON_NATURE, subtype=-1)
    at HeroBonus.cpp:280
0000010 0x00007f993b592aa5 in HasAnotherBonusLimiter::limit (this=0x7f992c438210, b=0x7f992c438230, node=...)
    at HeroBonus.cpp:1159
0000011 0x00007f993b58efc9 in CBonusSystemNode::isLimitedOnUs (this=0x3e9e168, b=0x7f992c438230) at HeroBonus.cpp:627
0000012 0x00007f993b59baba in boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>::operator() (this=0x7f992a92f350,
    t=..., a1=0x7f992c438230) at /usr/include/boost/bind/mem_fn_template.hpp:237
0000013 0x00007f993b5996cf in boost::_bi::list2<boost::reference_wrapper<CBonusSystemNode const>, boost::arg<1> >::opera---Type <return> to continue, or q <return> to quit---
tor()<bool, boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>, boost::_bi::list1<Bonus*&> > (this=0x7f992a92f360,
    f=..., a=...) at /usr/include/boost/bind/bind.hpp:303
0000014 0x00007f993b597222 in boost::_bi::bind_t<bool, boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>, boost::_bi::list2<boost::reference_wrapper<CBonusSystemNode const>, boost::arg<1> > >::operator()<Bonus*> (this=0x7f992a92f350,
    a1=@0x7f992a92f320) at /usr/include/boost/bind/bind_template.hpp:32
0000015 0x00007f993b595646 in BonusList::remove_if<boost::_bi::bind_t<bool, boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>, boost::_bi::list2<boost::reference_wrapper<CBonusSystemNode const>, boost::arg<1> > > > (this=0x3dbf2e0,
    pred=...) at HeroBonus.h:387
0000016 0x00007f993b58b610 in BonusList::limit (this=0x3dbf2e0, node=...) at HeroBonus.cpp:182
0000017 0x00007f993b58db54 in CBonusSystemNode::getAllBonuses (this=0x3e9e168, selector=..., limit=..., root=0x0,
    cachingStr=...) at HeroBonus.cpp:526
0000018 0x00007f993b58bc6e in IBonusBearer::valOfBonuses (this=0x3e9e168, selector=..., cachingStr=...)
    at HeroBonus.cpp:263
0000019 0x00007f993b58bb87 in IBonusBearer::valOfBonuses (this=0x3e9e168, type=Bonus::PRIMARY_SKILL, subtype=0)
    at HeroBonus.cpp:257
0000020 0x00007f993b58c7ec in IBonusBearer::Attack (this=0x3e9e168) at HeroBonus.cpp:352
0000021 0x00007f993b58cd52 in IBonusBearer::getPrimSkillLevel (this=0x3e9e168, id=0) at HeroBonus.cpp:403
0000022 0x00007f993b3a89a6 in InfoAboutHero::initFromHero (this=0x7f992a92f880, h=0x3e9e130, detailed=true)
    at CGameState.cpp:2621
0000023 0x00007f993b5a32e5 in CGameInfoCallback::getHeroInfo (this=0x4c6dc90, hero=0x3e9e130, dest=...)
    at IGameCallback.cpp:725
0000024 0x000000000071bdcd in CPlayerInterface::infoWin (this=0x4c6dce0, specific=0x3e9e130)
    at CPlayerInterface.cpp:397
.....
(0002287)
Tow (developer)
2012-03-06 17:02

Fixed in r2581.

- Issue History
Date Modified Username Field Change
2011-09-28 07:21 q4a New Issue
2011-09-28 07:21 q4a Status new => assigned
2011-09-28 07:21 q4a Assigned To => Tow
2011-09-28 09:08 Warmonger Severity minor => crash
2011-09-29 00:30 ubuntux Note Added: 0002074
2012-02-18 18:10 Warmonger Relationship added related to 0000859
2012-02-20 20:55 Tow Relationship replaced has duplicate 0000859
2012-03-01 23:31 Tow Relationship added related to 0000764
2012-03-06 17:02 Tow Note Added: 0002287
2012-03-06 17:02 Tow Status assigned => resolved
2012-03-06 17:02 Tow Fixed in Version => 0.89
2012-03-06 17:02 Tow Resolution open => fixed
2014-05-30 17:40 beegee Status resolved => closed

Site | Forums | Wiki | Slack | GitHub


Copyright © 2000 - 2024 MantisBT Team
Hosting provided by DigitalOcean