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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...