MantisBT - VCMI
View Issue Details
0002022VCMIGUI - Otherpublic2015-01-02 18:402016-01-17 12:36
KroArtem 
SXX 
highmajorhave not tried
closedfixed 
x86_64Ubuntu14.10
0.97b 
0.97c 
0002022: Crash after pressing on "Quest log"
See summary for more details. :)
[Thread 0x7fffdac4a700 (LWP 13621) exited]
removing object id=1449; address=140736674939424; name=Resource
Image must have palette to be player-colored!

Program received signal SIGSEGV, Segmentation fault.
CQuest::getRolloverText (this=0x7fffcf4a4110, ms=..., onHover=<optimized out>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/lib/mapObjects/CQuest.cpp:229
229 /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/lib/mapObjects/CQuest.cpp: Нет такого файла или каталога.
(gdb) bt
#0 CQuest::getRolloverText (this=0x7fffcf4a4110, ms=...,
    onHover=<optimized out>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/lib/mapObjects/CQuest.cpp:229
#1 0x00000000005053e9 in CQuestLog::init (this=this@entry=0x5934a20)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/windows/CQuestLog.cpp:142
0000002 0x0000000000505b3a in CQuestLog::CQuestLog (this=0x5934a20,
    Quests=std::vector of length 1, capacity 1 = {...})
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/windows/CQuestLog.cpp:127
0000003 0x00000000005e0504 in CPlayerInterface::showQuestLog (this=<optimized out>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/CPlayerInterface.cpp:2416
0000004 0x00000000004aaf0d in operator() (this=0x593b440)
    at /usr/include/c++/4.9/functional:2439
0000005 CFunctionList<void ()>::operator()<>() const (
    this=this@entry=0x7fffc49f66d8)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/widgets/../../lib/FunctionList.h:62
0000006 0x00000000004a8122 in CButton::onButtonClicked (this=0x7fffc49f66a0)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/widgets/Buttons.cpp:162
---Type <return> to continue, or q <return> to quit---
0000007 0x0000000000494000 in CGuiHandler::handleEvent (
    this=this@entry=0x93dc40 <GH>, sEvent=sEvent@entry=0x7fffffffd020)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/gui/CGuiHandler.cpp:321
0000008 0x0000000000494646 in CGuiHandler::handleEvents (this=0x93dc40 <GH>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/gui/CGuiHandler.cpp:183
0000009 0x00000000005e69bd in CPlayerInterface::update (this=<optimized out>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/CPlayerInterface.cpp:1595
0000010 0x0000000000492711 in operator() (__closure=<optimized out>,
    target=<optimized out>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/gui/CGuiHandler.cpp:417
0000011 std::_Function_handler<void(IUpdateable*), CGuiHandler::renderFrame()::<lambda(IUpdateable*)> >::_M_invoke(const std::_Any_data &, IUpdateable *) (
    __functor=..., __args#0=<optimized out>)
    at /usr/include/c++/4.9/functional:2039
0000012 0x00000000005e9d35 in operator() (__args#0=0x7fffc49033c0,
    this=0x7fffffffd150) at /usr/include/c++/4.9/functional:2439
0000013 CPlayerInterface::runLocked(std::function<void (IUpdateable*)>) (
    this=<optimized out>, functor=...)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/CPlayerInte---Type <return> to continue, or q <return> to quit---
rface.cpp:1634
0000014 0x00000000004931b1 in CGuiHandler::renderFrame (
    this=this@entry=0x93dc40 <GH>)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/gui/CGuiHandler.cpp:431
0000015 0x0000000000440a15 in mainLoop ()
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/CMT.cpp:1197
0000016 main (argc=<optimized out>, argv=0x7fffffffde98)
    at /build/buildd/vcmi-0.97+git20141227.3838~ubuntu14.10.1/client/CMT.cpp:485
(gdb)
No tags attached.
png Quest log correct.png (321,434) 2015-01-03 20:13
https://bugs.vcmi.eu/file_download.php?file_id=2059&type=bug
png
Issue History
2015-01-02 18:40KroArtemNew Issue
2015-01-02 19:36WarmongerNote Added: 0005303
2015-01-02 19:45KroArtemNote Added: 0005307
2015-01-02 19:48KroArtemNote Added: 0005308
2015-01-03 20:05KroArtemNote Added: 0005310
2015-01-03 20:13WarmongerFile Added: Quest log correct.png
2015-01-03 20:14WarmongerNote Added: 0005311
2015-01-03 21:21KroArtemNote Added: 0005312
2015-02-11 01:14SXXNote Added: 0005448
2015-02-11 02:35SXXNote Added: 0005449
2015-02-11 08:14SXXNote Added: 0005450
2015-02-13 12:38SXXAssigned To => SXX
2015-02-13 12:38SXXStatusnew => assigned
2015-02-14 02:01SXXNote Added: 0005472
2015-02-17 21:44SXXNote Added: 0005538
2015-02-17 21:44SXXStatusassigned => resolved
2015-02-17 21:44SXXFixed in Version => 0.97c
2015-02-17 21:44SXXResolutionopen => fixed
2016-01-17 12:36SXXStatusresolved => closed

Notes
(0005303)
Warmonger   
2015-01-02 19:36   
name=Resource
Image must have palette to be player-colored!

This clearly indicates you have some mess in your files, probably containing old graphics.
(0005307)
KroArtem   
2015-01-02 19:45   
That's strange because vcmilauncher is sure graphics are up-to-date.
(0005308)
KroArtem   
2015-01-02 19:48   
Moreover, in another mission I was able to open quest log.
Plus I've attached a screenshot with quest log, it shows the same warning every time I open it.
(0005310)
KroArtem   
2015-01-03 20:05   
Warmonger, can you show me your screenshot so that we'll be able to compare what is messed with my files?
(0005311)
Warmonger   
2015-01-03 20:14   
Here it is. If you see anything different, just remove all files and unpack current package into fresh Heroes install directory.
(0005312)
KroArtem   
2015-01-03 21:21   
Thanks, but your Quest log and mine look the same. :/
(0005448)
SXX   
2015-02-11 01:14   
Did you find out what cause crash for you?

I just met same problem. Each time I visit border gate guard that tell's me I need to find keymaster after that opening of quest log cause crash.
(0005449)
SXX   
2015-02-11 02:35   
Anyway so far I see problem occur because "CGBorderGuard::onHeroVisit" don't work correctly and when it's add new quest it's type is MISSION_NONE and not MISSION_KEYMASTER.

Keeps looking why it's happen.
(0005450)
SXX   
2015-02-11 08:14   
Okay finally back to testing and find out that :-)

Find out that in H3 visit of keymaster don't written in quest log and likely there is no text for it. So there is two things have to be done:
1 - First make sure that quests with type MISSION_NONE are ignored completely for the quest log in case this type was intended for this purpose.
2 - Add some text for keymaster and make sure it's get proper missionType, e.g:
// In CQuest.h add something like that
CGBorderGuard() : IQuestObject(){quest->missionType = CQuest::MISSION_KEYMASTER;};
// not represent actual way it's need to be done :-)


Then problem with crashes here would be solved.
(0005472)
SXX   
2015-02-14 02:01   
Pull request that should fix this crash:
https://github.com/vcmi/vcmi/pull/88 [^]
(0005538)
SXX   
2015-02-17 21:44   
Should be now fixed:
https://github.com/vcmi/vcmi/commit/200bcd7da609cabe3a4d70fd5811c8250151a5d4 [^]