Jump to content

0AD crashes when setting a sequence of rally points for a structure.


halcyonXIII
 Share

Recommended Posts

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 = ?

Link to comment
Share on other sites

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:140
No locals.
#1 0x00007ffff176c660 in pa_threaded_mainloop_wait ()
from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#2 0x00007ffff6299e7a in ?? () from /usr/lib/libopenal.so.1
No symbol table info available.
#3 0x00007ffff62252ea in ?? () from /usr/lib/libopenal.so.1
No 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:112
No 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.0
No symbol table info available.
#2 0x00007ffff175d45c in pa_mainloop_poll ()
from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#3 0x00007ffff175dac9 in pa_mainloop_iterate ()
from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#4 0x00007ffff175db80 in pa_mainloop_run ()
from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#5 0x00007ffff176bfef in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#6 0x00007fffefdc3c78 in ?? ()
from /usr/lib/x86_64-linux-gnu/libpulsecommon-1.0.so
No 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:112
No 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:86
No locals.
#1 0x00007ffff557c618 in SDL_SemWait () from /usr/lib/libSDL-1.2.so.0
No 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:112
No 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:82
No locals.
#1 0x00007ffff557e773 in SDL_Delay () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#2 0x00007ffff557e7a2 in ?? () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#3 0x00007ffff5538705 in ?? () from /usr/lib/libSDL-1.2.so.0
No symbol table info available.
#4 0x00007ffff557c3e9 in ?? () from /usr/lib/libSDL-1.2.so.0
No 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:112
No 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:86
No locals.
#1 0x00007ffff557c618 in SDL_SemWait () from /usr/lib/libSDL-1.2.so.0
No 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:236
No 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:112
No 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:82
No 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:112
No 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:82
No locals.
#1 0x0000000000c591d2 in debug_break ()
at ../../../source/lib/sysdep/os/unix/udbg.cpp:50
No 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:494
No 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:572
No locals.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...