MantisBT

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002022VCMIGUI - Otherpublic2015-01-02 18:402016-01-17 12:36
ReporterKroArtem 
Assigned ToSXX 
PriorityhighSeveritymajorReproducibilityhave not tried
StatusclosedResolutionfixed 
Platformx86_64OSUbuntuOS Version14.10
Product Version0.97b 
Target VersionFixed in Version0.97c 
Summary0002022: Crash after pressing on "Quest log"
DescriptionSee summary for more details. :)
Additional Information[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)
TagsNo tags attached.
Attached Filespng file icon Quest log correct.png [^] (321,434 bytes) 2015-01-03 20:13

- Relationships

-  Notes
(0005303)
Warmonger (administrator)
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 (updater)
2015-01-02 19:45

That's strange because vcmilauncher is sure graphics are up-to-date.
(0005308)
KroArtem (updater)
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 (updater)
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 (administrator)
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 (updater)
2015-01-03 21:21

Thanks, but your Quest log and mine look the same. :/
(0005448)
SXX (administrator)
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 (administrator)
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 (administrator)
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 (administrator)
2015-02-14 02:01

Pull request that should fix this crash:
https://github.com/vcmi/vcmi/pull/88 [^]
(0005538)
SXX (administrator)
2015-02-17 21:44

Should be now fixed:
https://github.com/vcmi/vcmi/commit/200bcd7da609cabe3a4d70fd5811c8250151a5d4 [^]

- Issue History
Date Modified Username Field Change
2015-01-02 18:40 KroArtem New Issue
2015-01-02 19:36 Warmonger Note Added: 0005303
2015-01-02 19:45 KroArtem Note Added: 0005307
2015-01-02 19:48 KroArtem Note Added: 0005308
2015-01-03 20:05 KroArtem Note Added: 0005310
2015-01-03 20:13 Warmonger File Added: Quest log correct.png
2015-01-03 20:14 Warmonger Note Added: 0005311
2015-01-03 21:21 KroArtem Note Added: 0005312
2015-02-11 01:14 SXX Note Added: 0005448
2015-02-11 02:35 SXX Note Added: 0005449
2015-02-11 08:14 SXX Note Added: 0005450
2015-02-13 12:38 SXX Assigned To => SXX
2015-02-13 12:38 SXX Status new => assigned
2015-02-14 02:01 SXX Note Added: 0005472
2015-02-17 21:44 SXX Note Added: 0005538
2015-02-17 21:44 SXX Status assigned => resolved
2015-02-17 21:44 SXX Fixed in Version => 0.97c
2015-02-17 21:44 SXX Resolution open => fixed
2016-01-17 12:36 SXX Status resolved => closed

Site | Forums | Wiki | Slack | GitHub


Copyright © 2000 - 2024 MantisBT Team
Hosting provided by DigitalOcean