Anonymous | Login | 2024-11-21 19:58 UTC |
My View | View Issues | Change Log | Roadmap |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0001100 | VCMI | Mechanics - Other | public | 2012-09-29 08:44 | 2014-05-30 17:41 | ||||
Reporter | douggie_m | ||||||||
Assigned To | Ivan | ||||||||
Priority | normal | Severity | crash | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | PowerPC | OS | GNU/Linux | OS Version | Debian Sid | ||||
Product Version | |||||||||
Target Version | Fixed in Version | 0.9 | |||||||
Summary | 0001100: SIGSEGV on attempt to start new map with rev2942 | ||||||||
Description | Initialization of VCMI (together): 2920 [New Thread 0xf2b55450 (LWP 26836)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf2b55450 (LWP 26836)] 0x1054c41c in SelectionTab::parseMaps (this=0x10c156f8, files=..., start=1, threads=1) at CPreGame.cpp:1052 1052 int read = stream->read(mapBuffer, 1500); (gdb) p stream $1 = { _M_t = {<std::_Tuple_impl<0u, CInputStream*, std::default_delete<CInputStream> >> = {<std::_Tuple_impl<1u, std::default_delete<CInputStream> >> = {<std::_Tuple_impl<2u>> = {<No data fields>}, <std::_Head_base<1u, std::default_delete<CInputStream>, true>> = {<std::default_delete<CInputStream>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0u, CInputStream*, false>> = { _M_head_impl = 0x0}, <No data fields>}, <No data fields>}} (gdb) p mapBuffer $2 = "\025\000\000\000\001H\000\000\000\001\f\000\000\000Step by Step\214\000\000\000A harsh winter has separated what once was your kingdom. Now that the winter is over, it is time to take your kingdom back, step by step. \001\000\001\001\000\377\001\001\001\001\377\003\a\000\000\377\000\000\000\000\000\001\001\000\377\001\001\001\001\377\003\005\001\000\377\000\000\000\000\000"... | ||||||||
Steps To Reproduce | Launch vcmiclient, click New Game -> Single Scenario; or New Game -> Multiplayer. | ||||||||
Additional Information | $ file '/usr/share/vcmi/Maps/Step by Step.h3m' /usr/share/vcmi/Maps/Step by Step.h3m: gzip compressed data, from NTFS filesystem (NT) | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | usr-share-vcmi-Maps.tar.bz2 [^] (2,173,343 bytes) 2012-09-29 09:18 | ||||||||
Notes | |
(0003082) douggie_m (reporter) 2012-09-29 08:57 |
"on attempt to start new game", of course, I don't even get a list of maps (can't edit submitted issue). When I did /usr/share/vcmi/Maps# mv Step\ by\ Step.h3m ../ I got the following: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf2b55450 (LWP 27098)] 0x1054c41c in SelectionTab::parseMaps (this=0x10d9c4a0, files=..., start=0, threads=1) at CPreGame.cpp:1052 1052 int read = stream->read(mapBuffer, 1500); (gdb) p mapBuffer $1 = "\016,\363\\\000\000\000\a\367\377\340\030\000\200\000\000\rǑ\304\362\265>\020\362\265T\260\r\307q,\362\265Vd\365\217\315h\365u\"@\r\340\237\364\365\200\000\020\362\265>\020\r\321J\334\r\336&\274\r\336&\214\r\336'\024\016\000\261`\000\000\000\000\000\000\000\000\362\065`\000\020\302\216\204\rಠ\016,\363\\\020\261\352\070\000\000\000\000\000\000\000\000\020\276\224p\000\000\000\000\000\000\004\000\000\000\004\000\r\340\262\\\000\000\004\b\r\340\262h\r\340\237\364\r\340\262h\362\265>\220\r\321)\360\000\000\000\201\000\000\000H\r\336+\274\000\000\004\030\000\000\004\000\r\336,\320\362\265>\260\r\336+\240\000\000\000\002\000\000\000\002\r\336+\274\000\000\000 \000\000\000\b\r\336,\320\r\340\240\254\r\336+\240\000\000\000)\000\000\000)\r\336+\274$\000D\"\000\000\000\000\000\000\000\000\362\065`\000\020\302\216\204\020\302\216p\016,\363\\\020\261\352\070", '\000' <repeats 15 times>, "\b\000\000\000\000\020\261\321h\020\273\324h\000\000\000"... |
(0003083) douggie_m (reporter) 2012-09-29 09:15 |
When I left only VCMI_Tests_2011b.h3m, and then just added all for one.h3m, there was no segfault. I suppose I should upload my Maps directory contents. Also, I forgot backtrace: (gdb) s std::_Tuple_impl<0u, CInputStream*, std::default_delete<CInputStream> >::_M_head (this=0xf2b53d78) at /usr/include/c++/4.7/tuple:152 152 const _Head& _M_head() const { return _Base::_M_head(); } (gdb) s std::_Head_base<0u, CInputStream*, false>::_M_head (this=0xf2b53d78) at /usr/include/c++/4.7/tuple:104 104 const _Head& _M_head() const { return _M_head_impl; } (gdb) s std::unique_ptr<CInputStream, std::default_delete<CInputStream> >::operator-> (this=0xf2b53d78) at /usr/include/c++/4.7/bits/unique_ptr.h:213 213 } (gdb) s Program received signal SIGSEGV, Segmentation fault. 0x1054c41c in SelectionTab::parseMaps (this=0x1158ad58, files=..., start=0, threads=1) at CPreGame.cpp:1052 1052 int read = stream->read(mapBuffer, 1500); (gdb) bt #0 0x1054c41c in SelectionTab::parseMaps (this=0x1158ad58, files=..., start=0, threads=1) at CPreGame.cpp:1052 #1 0x1054d274 in SelectionTab::SelectionTab(CMenuScreen::EState, const boost::function<void(CMapInfo*)> &, CMenuScreen::EMultiMode) (this=0x1158ad58, Type=CMenuScreen::newGame, OnSelect=..., MultiPlayer=CMenuScreen::SINGLE_PLAYER) at CPreGame.cpp:1143 0000002 0x1054889c in CSelectionScreen::CSelectionScreen (this=0x11547358, Type=CMenuScreen::newGame, MultiPlayer=CMenuScreen::SINGLE_PLAYER, Names=0x0) at CPreGame.cpp:599 0000003 0x105474a0 in CGPreGame::openSel (this=0xec100fb8, screenType=CMenuScreen::newGame, multi=CMenuScreen::SINGLE_PLAYER) at CPreGame.cpp:455 0000004 0x105abf24 in boost::_mfi::mf2<void, CGPreGame, CMenuScreen::EState, CMenuScreen::EMultiMode>::operator() (this=0x10b09360, p=0xec100fb8, a1=CMenuScreen::newGame, a2=CMenuScreen::SINGLE_PLAYER) at /usr/include/boost/bind/mem_fn_template.hpp:280 0000005 0x105a3da0 in boost::_bi::list3<boost::_bi::value<CGPreGame*>, boost::_bi::value<CMenuScreen::EState>, boost::_bi::value<CMenuScreen::EMultiMode> >::operator()<boost::_mfi::mf2<void, CGPreGame, CMenuScreen::EState, CMenuScreen::EMultiMode>, boost::_bi::list0> (this=0x10b09368, f=..., a=...) at /usr/include/boost/bind/bind.hpp:392 0000006 0x10599428 in boost::_bi::bind_t<void, boost::_mfi::mf2<void, CGPreGame, CMenuScreen::EState, CMenuScreen::EMultiMode>, boost::_bi::list3<boost::_bi::value<CGPreGame*>, boost::_bi::value<CMenuScreen::EState>, boost::_bi::value<CMenuScreen::EMultiMode> > >::operator() (this=0x10b09360) at /usr/include/boost/bind/bind_template.hpp:20 0000007 0x1058bcfc in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf2<void, CGPreGame, CMenuScreen::EState, CMenuScreen::EMultiMode>, boost::_bi::list3<boost::_bi::value<CGPreGame*>, boost::_bi::value<CMenuScreen::EState>, boost::_bi::value<CMenuScreen::EMultiMode> > >, void>::invoke (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153 0000008 0x10267d3c in boost::function0<void>::operator() (this=0x108fe9a8) at /usr/include/boost/function/function_template.hpp:760 0000009 0x10268190 in CFunctionList<void ()>::operator()() const (this=0x11519a4c) at ./UIFramework/../FunctionList.h:62 0000010 0x10255bbc in CAdventureMapButton::clickLeft (this=0x115199f0, down=..., previousState=true) at ./UIFramework/CIntObjectClasses.cpp:335 0000011 0x10244024 in CGuiHandler::handleEvent (this=0x108e0444, sEvent=0xf2b54b98) at ./UIFramework/CGuiHandler.cpp:247 0000012 0x10243264 in CGuiHandler::handleEvents (this=0x108e0444) at ./UIFramework/CGuiHandler.cpp:140 0000013 0x10547bd8 in CGPreGame::update (this=0xec100fb8) at CPreGame.cpp:496 0000014 0x10244ca4 in CGuiHandler::run (this=0x108e0444) at ./UIFramework/CGuiHandler.cpp:348 0000015 0x104d3d0c in boost::_mfi::mf0<void, CGuiHandler>::operator() (this=0xec149974, t=...) at /usr/include/boost/bind/mem_fn_template.hpp:70 0000016 0x104d3a64 in boost::_bi::list1<boost::reference_wrapper<CGuiHandler> >::operator()<boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list0> (this=0xec14997c, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 0000017 0x104d3934 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list1<boost::reference_wrapper<CGuiHandler> > >::operator() (this=0xec149974) at /usr/include/boost/bind/bind_template.hpp:20 0000018 0x104d3060 in boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, CGuiHandler>, boost::_bi::list1<boost::reference_wrapper<CGuiHandler> > > >::run (this=0xec149870) at /usr/include/boost/thread/detail/thread.hpp:62 0000019 0x0e2cf40c in ?? () from /usr/lib/libboost_thread.so.1.49.0 0000020 0x0dc557b0 in start_thread (arg=<optimized out>) at pthread_create.c:306 0000021 0x0dd7b930 in clone () at ../sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S:123 (gdb) quit |
(0003085) Ivan (developer) 2012-09-29 09:21 |
With your maps crash is reproducible. Will check what's wrong. |
(0003087) Ivan (developer) 2012-09-29 09:23 |
Myth and legends.h3m causes crash. Removing this file should fix this. Now I need to figure out why VCMI can't load it... |
(0003089) douggie_m (reporter) 2012-09-29 09:28 edited on: 2012-09-29 09:36 |
Not on my side. I did /usr/share/vcmi# mv Maps/myth\ and\ legend.h3m Maps\ \(Disabled\)/ And still got SIGSEGV (with all other maps kept), mapBuffer is still the same as in topic post: (gdb) p mapBuffer $1 = "\025\000\000\000\001H\000\000\000\001\f\000\000\000Step by Step\214\000\000\000A harsh winter has separated what once was your kingdom. Now that the winter is over, it is time to take your kingdom back, step by step. \001\000\001\001\000\377\001\001\001\001\377\003\a\000\000\377\000\000\000\000\000\001\001\000\377\001\001\001\001\377\003\005\001\000\377\000\000\000\000\000"... UPD: By the way, myth\ and\ legend.h3m is from LOKI, but gzipped manually by myself some time ago. |
(0003090) Ivan (developer) 2012-09-29 09:33 |
You moved it into subdirectory? Right now VCMI will parse all subdirectories as well so this map still will be parsed and will crash again. |
(0003091) douggie_m (reporter) 2012-09-29 09:36 |
No, 'Maps (Disabled)' is in /usr/share/vcmi as well as 'Maps', and not in a subdir of Maps. |
(0003092) Ivan (developer) 2012-09-29 09:44 |
Ah. Too many slashes. FYI - typing " before file name won't broke autocomplete and will give more readable commands. Check rev 2947 - it should fix loading of myth and legends and will print file name of broken map |
(0003093) douggie_m (reporter) 2012-09-29 09:48 edited on: 2012-09-29 09:55 |
Maybe 'all for one.h3m' is the cause (maybe because it is uncompressed). When it is used with any other gzipped map. /usr/share/vcmi# ls -l Maps total 144 -rw-rw-r-- 1 root root 130076 Sep 20 14:04 all for one.h3m -rw-rw-r-- 1 root root 16092 Aug 11 12:25 ascension.h3m Segfaults too. But the same 'all for one.h3m' left alone together with 'VCMI_Tests_2011b.h3m' loads perfectly. UPD: no, moving out 'all for one.h3m' together with 'myth and legend.h3m' doesn't help. It's magic. |
(0003094) douggie_m (reporter) 2012-09-29 09:49 |
Will check rev2947. |
(0003096) douggie_m (reporter) 2012-09-29 10:24 |
With rev2947, issue is resolved fixed. |
Issue History | |||
Date Modified | Username | Field | Change |
2012-09-29 08:44 | douggie_m | New Issue | |
2012-09-29 08:57 | douggie_m | Note Added: 0003082 | |
2012-09-29 09:15 | douggie_m | Note Added: 0003083 | |
2012-09-29 09:18 | douggie_m | File Added: usr-share-vcmi-Maps.tar.bz2 | |
2012-09-29 09:21 | Ivan | Note Added: 0003085 | |
2012-09-29 09:21 | Ivan | Assigned To | => Ivan |
2012-09-29 09:21 | Ivan | Status | new => assigned |
2012-09-29 09:23 | Ivan | Note Added: 0003087 | |
2012-09-29 09:28 | douggie_m | Note Added: 0003089 | |
2012-09-29 09:29 | douggie_m | Note Edited: 0003089 | View Revisions |
2012-09-29 09:33 | Ivan | Note Added: 0003090 | |
2012-09-29 09:36 | douggie_m | Note Added: 0003091 | |
2012-09-29 09:36 | douggie_m | Note Edited: 0003089 | View Revisions |
2012-09-29 09:44 | Ivan | Note Added: 0003092 | |
2012-09-29 09:48 | douggie_m | Note Added: 0003093 | |
2012-09-29 09:49 | douggie_m | Note Added: 0003094 | |
2012-09-29 09:55 | douggie_m | Note Edited: 0003093 | View Revisions |
2012-09-29 10:24 | douggie_m | Note Added: 0003096 | |
2012-09-29 11:07 | Ivan | Status | assigned => resolved |
2012-09-29 11:07 | Ivan | Fixed in Version | => 0.9 |
2012-09-29 11:07 | Ivan | Resolution | open => fixed |
2014-05-30 17:41 | beegee | Status | resolved => closed |
Copyright © 2000 - 2024 MantisBT Team |