halcyonXIII Posted June 8, 2012 Report Share Posted June 8, 2012 I encountered a crash when setting a sequence of rally points for a structure, using svn rev. 11951.Steps to reproduce:1) Select a building which can produce or garrison units.2) Hold down the Shift key, and set a chain of rally points anywhere.3) Usually on about the 5th rally point, 0AD crashes.Occasionally, the crash produces this log:Function call failed: return value was -120000 (Handle index completely out of bounds)Location: h_mgr.cpp:197 (h_data_from_idx)Call stack:(0x7f4caa) ./pyrogenesis() [0x7f4caa](0x79fc11) ./pyrogenesis() [0x79fc11](0x7a08ee) ./pyrogenesis() [0x7a08ee](0x7a00e9) ./pyrogenesis() [0x7a00e9](0x7c33f3) ./pyrogenesis() [0x7c33f3](0x7cad95) ./pyrogenesis() [0x7cad95](0x5e81e4) ./pyrogenesis() [0x5e81e4](0x675537) ./pyrogenesis() [0x675537](0x65aade) ./pyrogenesis() [0x65aade](0x65ad39) ./pyrogenesis() [0x65ad39](0x65b62c) ./pyrogenesis() [0x65b62c](0x6510c4) ./pyrogenesis() [0x6510c4](0x65191f) ./pyrogenesis() [0x65191f](0x587fa1) ./pyrogenesis() [0x587fa1](0x41d9b3) ./pyrogenesis() [0x41d9b3](0x4135d7) ./pyrogenesis() [0x4135d7]errno = 0 (No error reported here)OS error = ? Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted June 9, 2012 Report Share Posted June 9, 2012 Hmm, I just placed about 50 of them on a civ centre with no errors... which OS are you using? Is there a chance you can run the game in a debuger (e.g. gdb) and get the real call stack as described here? Quote Link to comment Share on other sites More sharing options...
halcyonXIII Posted June 9, 2012 Author Report Share Posted June 9, 2012 I knew I forgot something.. I'm using Kubuntu 12.04 (Linux 3.2.0-24-generic). I've attatched the call stack.0ad_gdb_callstack.txt Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted June 9, 2012 Report Share Posted June 9, 2012 OK I just reproduced this crash on Ubuntu, looking into it. For some reason it doesn't occur in Windows, perhaps a GCC/Linux only bug? Quote Link to comment Share on other sites More sharing options...
historic_bruno Posted June 9, 2012 Report Share Posted June 9, 2012 Sometimes I get a slightly different error, again while placing the 5th waypoint flag:Function call failed: return value was -120003 (Handle tag mismatch (stale reference?))Location: h_mgr.cpp:245 (h_data_tag)With this call stack (thread 1 is the relevant bit):Thread 8 (Thread 0x7fffc54aa700 (LWP 22391)):#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:140No locals.#1 0x00007ffff176c660 in pa_threaded_mainloop_wait () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#2 0x00007ffff6299e7a in ?? () from /usr/lib/libopenal.so.1No symbol table info available.#3 0x00007ffff62252ea in ?? () from /usr/lib/libopenal.so.1No symbol table info available.#4 0x00007ffff4817efc in start_thread (arg=0x7fffc54aa700) at pthread_create.c:304 __res = <optimized out> pd = 0x7fffc54aa700 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -3394299257482913114, 140737295555616, 140736503392704, 0, 3, 3394179587834108582, 3394288936646859430}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 robust = <optimized out> pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"#5 0x00007ffff455259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112No locals.#6 0x0000000000000000 in ?? ()No symbol table info available.Thread 7 (Thread 0x7fffc9cac700 (LWP 22390)):#0 0x00007ffff4546473 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 resultvar = <optimized out> oldtype = 0 result = <optimized out>#1 0x00007ffff176c03f in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#2 0x00007ffff175d45c in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#3 0x00007ffff175dac9 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#4 0x00007ffff175db80 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#5 0x00007ffff176bfef in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0No symbol table info available.#6 0x00007fffefdc3c78 in ?? () from /usr/lib/x86_64-linux-gnu/libpulsecommon-1.0.soNo symbol table info available.#7 0x00007ffff4817efc in start_thread (arg=0x7fffc9cac700) at pthread_create.c:304 __res = <optimized out> pd = 0x7fffc9cac700 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -3394299257482913114, 140737295555616, 140736578898368, 0, 3, 3394189484512500390, 3394288936646859430}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 robust = <optimized out> pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"#8 0x00007ffff455259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112No locals.#9 0x0000000000000000 in ?? ()No symbol table info available.Thread 5 (Thread 0x7fffca7af700 (LWP 22388)):#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86No locals.#1 0x00007ffff557c618 in SDL_SemWait () from /usr/lib/libSDL-1.2.so.0No symbol table info available.#2 0x0000000000aa5e68 in CTextureConverter::RunThread (data=0x11abdb0) at ../../../source/graphics/TextureConverter.cpp:515 textureConverter = 0x11abdb0#3 0x00007ffff4817efc in start_thread (arg=0x7fffca7af700) at pthread_create.c:304 __res = <optimized out> pd = 0x7fffca7af700 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -3394299257482913114, 140737295555616, 140736590444992, 0, 3, 3394186051223018150, 3394288936646859430}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 robust = <optimized out> pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"#4 0x00007ffff455259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112No locals.#5 0x0000000000000000 in ?? ()No symbol table info available.Thread 4 (Thread 0x7fffccdda700 (LWP 22387)):#0 0x00007ffff481f8dd in nanosleep () at ../sysdeps/unix/syscall-template.S:82No locals.#1 0x00007ffff557e773 in SDL_Delay () from /usr/lib/libSDL-1.2.so.0No symbol table info available.#2 0x00007ffff557e7a2 in ?? () from /usr/lib/libSDL-1.2.so.0No symbol table info available.#3 0x00007ffff5538705 in ?? () from /usr/lib/libSDL-1.2.so.0No symbol table info available.#4 0x00007ffff557c3e9 in ?? () from /usr/lib/libSDL-1.2.so.0No symbol table info available.#5 0x00007ffff4817efc in start_thread (arg=0x7fffccdda700) at pthread_create.c:304 __res = <optimized out> pd = 0x7fffccdda700 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -3394299257482913114, 140737488342224, 140736630467008, 0, 3, 3394200590224186022, 3394288936646859430}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 robust = <optimized out> pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"#6 0x00007ffff455259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112No locals.#7 0x0000000000000000 in ?? ()No symbol table info available.Thread 3 (Thread 0x7fffcd6dc700 (LWP 22386)):#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86No locals.#1 0x00007ffff557c618 in SDL_SemWait () from /usr/lib/libSDL-1.2.so.0No symbol table info available.#2 0x00000000008ef44c in CUserReporterWorker::Run (this=0x1250e80) at ../../../source/ps/UserReport.cpp:279 proxy = {static npos = <optimized out>, _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff51bb698 L""}}#3 0x00000000008ef1c6 in CUserReporterWorker::RunThread (data=0x1250e80) at ../../../source/ps/UserReport.cpp:236No locals.#4 0x00007ffff4817efc in start_thread (arg=0x7fffcd6dc700) at pthread_create.c:304 __res = <optimized out> pd = 0x7fffcd6dc700 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -3394299257482913114, 140737295555616, 140736639912384, 0, 3, 3394196880446184102, 3394288936646859430}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 robust = <optimized out> pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"#5 0x00007ffff455259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112No locals.#6 0x0000000000000000 in ?? ()No symbol table info available.Thread 2 (Thread 0x7fffcdedd700 (LWP 22385)):#0 0x00007ffff454b613 in select () at ../sysdeps/unix/syscall-template.S:82No locals.#1 0x0000000000c5430c in fam_event_loop () at ../../../source/lib/sysdep/os/linux/dir_watch_fam.cpp:147 fdrset = {fds_bits = {512, 0 <repeats 15 times>}} famfd = 9#2 0x00007ffff4817efc in start_thread (arg=0x7fffcdedd700) at pthread_create.c:304 __res = <optimized out> pd = 0x7fffcdedd700 now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1, -3394299257482913114, 140737295555616, 140736648305088, 0, 3, 3394197981568424614, 3394288936646859430}, mask_was_saved = 0}}, priv = {pad = { 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 robust = <optimized out> pagesize_m1 = <optimized out> sp = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread"#3 0x00007ffff455259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112No locals.#4 0x0000000000000000 in ?? ()No symbol table info available.Thread 1 (Thread 0x7ffff7fca780 (LWP 22382)):#0 0x00007ffff44a5687 in kill () at ../sysdeps/unix/syscall-template.S:82No locals.#1 0x0000000000c591d2 in debug_break () at ../../../source/lib/sysdep/os/unix/udbg.cpp:50No locals.#2 0x0000000000bfc909 in h_data_tag (h=27866499442802754, hd=@0x7fffffffd890) at ../../../source/lib/res/h_mgr.cpp:245 suppress__ = 0 __func__ = "h_data_tag"#3 0x0000000000bfc963 in h_data_tag_type (h=27866499442802754, type=0x11334c0, hd=@0x7fffffffd890) at ../../../source/lib/res/h_mgr.cpp:256 status_ = 140737488345232 __func__ = "h_data_tag_type"#4 0x0000000000bfd915 in h_user_data (h=27866499442802754, type=0x11334c0) at ../../../source/lib/res/h_mgr.cpp:610 hd = 0x7fffede0bcb0 __func__ = "h_user_data"#5 0x0000000000c0898f in ogl_tex_get_texture_id (ht=27866499442802754, id=0x7fffffffd910) at ../../../source/lib/res/graphics/ogl_tex.cpp:1088 __func__ = "ogl_tex_get_texture_id" ot = 0x9916ca0#6 0x00000000009a5e67 in CShaderProgramARB::BindTexture (this=0x9916c20, id=0xd19fa3 "baseTex", tex=27866499442802754) at ../../../source/graphics/ShaderProgram.cpp:173 h = 0 index = 0#7 0x0000000000a87b4e in CTexturedLineRData::Render (this=0xa81edd0, shader=...) at ../../../source/renderer/TexturedLineRData.cpp:44 streamFlags = 9 stride = 0 vertexBase = 0x0 indexBase = 0x0#8 0x0000000000a613a8 in OverlayRenderer::RenderTexturedOverlayLines ( this=0x161ed00, shader=..., alwaysVisible=true) at ../../../source/renderer/OverlayRenderer.cpp:470 line = 0x11474fe0 rdata = 0xa81edd0 i = 3 __func__ = "RenderTexturedOverlayLines"#9 0x0000000000a611db in OverlayRenderer::RenderTexturedOverlayLines ( this=0x161ed00) at ../../../source/renderer/OverlayRenderer.cpp:440 shaderName = 0xd15ba0 "arb/overlayline" shaderTexLineNormal = {px = 0x8e67530, pn = {pi_ = 0x9255700}} los = @0x32355f0 shaderManager = @0x161e350 shaderTexLineAlwaysVisible = {px = 0x9916c20, pn = {pi_ = 0x9232570}}#10 0x0000000000a60e25 in OverlayRenderer::RenderOverlaysAfterWater ( this=0x161ed00) at ../../../source/renderer/OverlayRenderer.cpp:385 __profile = {<No data fields>} profile2__ = {m_Name = 0xd15b8f "overlays (after)"} profile2gpu__ = {m_Name = 0xd15b8f "overlays (after)"}#11 0x0000000000a577f5 in CRenderer::RenderSubmissions (this=0x161de40) at ../../../source/renderer/Renderer.cpp:1460 __profile = {<No data fields>} profile2__ = {m_Name = 0xd12b4a "render submissions"} context = {<CShaderParams<CStrIntern>> = {m_Items = 0x178b640, static s_InternedItems = { table_ = {<boost::unordered_detail::hash_table<boost::unordered_detail::map<CShaderParams<CStrIntern>::SItems, boost::hash<CShaderParams<CStrIntern>::SItems>, std::equal_to<CShaderParams<CStrIntern>::SItems>, std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > > > >> = {<boost::unordered_detail::hash_buckets<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > >, boost::unordered_detail::ungrouped>> = { buckets_ = 0xc4a7d70, bucket_count_ = 79, allocators_ = {<boost::details::compressed_pair_imp<std::allocator<boost::unordered_detail::hash_bucket<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > > > >, std::allocator<boost::unordered_detail::hash_node<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > >, boost::unordered_detail::ungrouped> >, 3>> = {<std::allocator<boost::unordered_detail::hash_bucket<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > > > >> = {<__gnu_cxx::new_allocator<boost::unordered_detail::hash_bucket<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > > > >> = {<No data fields>}, <No data fields>}, <std::allocator<boost::unordered_detail::hash_node<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > >, boost::unordered_detail::ungrouped> >> = {<__gnu_cxx::new_allocator<boost::unordered_detail::hash_node<std::allocator<std::pair<CShaderParams<CStrIntern>::SItems const, boost::shared_ptr<CShaderParams<CStrIntern>::SItems> > >, boost::unordered_detail::ungrouped> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <boost::unordered_detail::hash_buffered_functions<boost::hash<CShaderParams<CStrIntern>::SItems>, std::equal_to<CShaderParams<CStrIntern>::SItems> >> = {current_ = false, funcs_ = {{ data_ = {buf = "", align_ = 0 '\000'}}, {data_ = { buf = "", align_ = 0 '\000'}}}}, size_ = 61, mlf_ = 1, cached_begin_bucket_ = 0xc4a7d70, max_load_ = 79}, <No data fields>}}}, <No data fields>} waterScissor = {m_Data = {{X = 0.625760198, Y = 0.773907781, Z = -1}, { X = 1, Y = 1, Z = 1}}, static EMPTY = {m_Data = {{ X = 3.40282347e+38, Y = 3.40282347e+38, Z = 3.40282347e+38}, { X = -3.40282347e+38, Y = -3.40282347e+38, Z = -3.40282347e+38}}, static EMPTY = <same as static member of an already seen type>}}#12 0x0000000000a584fc in CRenderer::RenderScene (this=0x161de40, scene=...) at ../../../source/renderer/Renderer.cpp:1664 frustum = {m_aPlanes = {{m_Norm = {X = -1.5724076, Y = -0.57357645, Z = 0.819152057}, m_Dist = -24.4981995}, {m_Norm = { X = 1.5724076, Y = -0.57357645, Z = 0.819152057}, m_Dist = -762.436035}, {m_Norm = {X = 0, Y = 1.14381146, Z = 2.02168012}, m_Dist = -1204.53088}, {m_Norm = {X = 0, Y = -2.29096437, Z = -0.383375943}, m_Dist = 417.59668}, { m_Norm = {X = 0, Y = 0.00056040287, Z = -0.00080037117}, m_Dist = 4.38638306}, {m_Norm = {X = 0, Y = -1.1477133, Z = 1.63910449}, m_Dist = -791.320557}, {m_Norm = {X = 0, Y = 0, Z = 0}, m_Dist = 0}, {m_Norm = {X = 0, Y = 0, Z = 0}, m_Dist = 0}, {m_Norm = {X = 0, Y = 0, Z = 0}, m_Dist = 0}, { m_Norm = {X = 0, Y = 0, Z = 0}, m_Dist = 0}}, m_NumPlanes = 6}#13 0x00000000009e9e4c in CGameView::Render (this=0x3235430) at ../../../source/graphics/GameView.cpp:494No locals.#14 0x000000000092cf41 in Render () at ../../../source/ps/GameSetup/GameSetup.cpp:228 __profile = {<No data fields>} profile2__ = {m_Name = 0xce4b4e "render"} skystring = {<std::basic_string<char, std::char_traits<char>, std::allocator<char> >> = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x123cc08 "0 0 0"}}, <No data fields>} skycol = {r = 0, g = 0, b = 0, a = 1}#15 0x000000000070b172 in Frame () at ../../../source/main.cpp:413 __profile = {<No data fields>} profile2__ = {m_Name = 0xc8fcf8 "sound update"} realTimeSinceLastFrame = 1.51004779 __func__ = "Frame" need_render = true profile2__ = {m_Name = 0xc8fc66 "frame"} time = 90.913563038000007 need_update = true is_building_archive = false#16 0x000000000070b8f6 in RunGameOrAtlas (argc=1, argv=0x7fffffffe238) at ../../../source/main.cpp:529 args = { m_Args = {<std::_Vector_base<std::pair<CStr8, CStr8>, std::allocator<std::pair<CStr8, CStr8> > >> = { _M_impl = {<std::allocator<std::pair<CStr8, CStr8> >> = {<__gnu_cxx::new_allocator<std::pair<CStr8, CStr8> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, m_Arg0 = { path = {static npos = <optimized out>, _M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>}, _M_p = 0x11447b8 L"/home/ben/0ad/binaries/system/pyrogenesis_dbg"}}, separator = 47 L'/'}} ran_atlas = false res = 1.0000000000000001e-09#17 0x000000000070bbdc in main (argc=1, argv=0x7fffffffe238) at ../../../source/main.cpp:572No locals. Quote Link to comment Share on other sites More sharing options...
vts Posted June 11, 2012 Report Share Posted June 11, 2012 (Now tracking this bug at http://trac.wildfiregames.com/ticket/1495) Quote Link to comment Share on other sites More sharing options...
vts Posted June 17, 2012 Report Share Posted June 17, 2012 Should be fixed as of r11979. HalcyonXIII, can you confirm the fix? Quote Link to comment Share on other sites More sharing options...
halcyonXIII Posted June 18, 2012 Author Report Share Posted June 18, 2012 Hi vts.I've just updated to revision 11983 and was able to set a chain of ~100 rally points with no problems, so I can confirm that your fix has worked. Thanks! Quote Link to comment Share on other sites More sharing options...
vts Posted June 19, 2012 Report Share Posted June 19, 2012 Cool, thanks for reporting Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.