2025-07-22 02:01 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004273Spring engineGeneralpublic2014-01-20 01:13
Reporterabma 
Assigned TojK 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionfixed 
Product Version96.0.1+git 
Target Version97.0Fixed in Version 
Summary0004273: instant close when right-clicking
Description[f=0000000] Player UnnamedPlayer finished loading and is now ingame
 [f=0000000] GameID: 0f1ad652d5078e1959b5f8a91cdf4421
[f=0000042] Error: [ErrorMessageBox][1] msg="22: boost: mutex lock failed in pthread_mutex_lock: Invalid argument" IsMainThread()=0 fromMain=0
AL lib: ReleaseALC: 1 device not closed
Steps To Reproducestart game, select unit, right click -> instant exit
Additional InformationSpring 96.0.1-159-g7f66476 develop
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
has duplicate 0004280closedjK Spring crash after various game events 
+Relationships

-Notes

~0012694

abma (administrator)

Last edited: 2014-01-15 06:19

View 3 revisions

with gdb attached:

[f=0000000] Connection attempt from UnnamedPlayer
[f=0000000] -> Version: 96.0.1-159-g7f66476 develop
[f=0000000] -> Connection established (given id 0)
[f=0000000] Player UnnamedPlayer finished loading and is now ingame
[f=0000000] GameID: 8d1ad6528fdd72ea59b5f8a91cdf4421
[New Thread 0x7fffde27d700 (LWP 25315)]
[Thread 0x7fffde27d700 (LWP 25315) exited]
[New Thread 0x7fffde27d700 (LWP 25328)]
AL lib: ReleaseALC: 1 device not closed
[Thread 0x7fffdea7e700 (LWP 25236) exited]
[Thread 0x7fffed006700 (LWP 25234) exited]
[Thread 0x7fffde27d700 (LWP 25328) exited]
[Thread 0x7fffdffff700 (LWP 25229) exited]
[Thread 0x7fffeea3c700 (LWP 25221) exited]
[Thread 0x7ffff7fb3780 (LWP 25213) exited]
[Thread 0x7fffee008700 (LWP 25222) exited]
[Thread 0x7fffdf27f700 (LWP 25235) exited]
[Inferior 1 (process 25213) exited with code 01]
(gdb) bt
No stack.



"clean" exit ?!

~0012705

jK (developer)

cleanrock already informed me,
it's a bug in BA (it returns wrong param types in a few callins) and luaL_opt... when called not inside a lua_pcall will do an very nasty exit() in that case.

~0012707

abma (administrator)

Last edited: 2014-01-15 17:49

View 2 revisions

can we at least print some error message?

for the reference, this is where exit is called i guess:

https://github.com/spring/spring/blob/develop/rts/lib/lua/src/ldo.cpp#L106

~0012718

silentwings (reporter)

Last edited: 2014-01-16 12:56

View 4 revisions

"cleanrock already informed me, it's a bug in BA"

Error msg pls! Including name of widget/gadget + callin (or line number) - none of us had any idea.

~0012719

abma (administrator)

two easy workarrounds:

replace exit() with abort()
or just remove exit at all which will show:

"Warning: LuaUI stack check: top = 2"

not sure whats better, just doing a clean exit makes it very difficult for game devs to fix invalid code.

~0012720

abma (administrator)

Last edited: 2014-01-16 12:53

View 2 revisions

after: https://github.com/spring/spring/commit/5cba99d4e7ddb0ed34cc7345e9684e9b70c911f6

(gdb) bt
#0 0x00007ffff4279f77 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff427d5e8 in __GI_abort () at abort.c:90
#2 0x0000000000e11ed2 in luaD_throw (L=0xae1b220, errcode=2) at rts/lib/lua/src/ldo.cpp:106
0000003 0x0000000000e11b47 in luaG_errormsg (L=0xae1b220) at rts/lib/lua/src/ldebug.cpp:627
0000004 0x0000000000e0aa55 in lua_error (L=0xae1b220) at rts/lib/lua/src/lapi.cpp:979
0000005 0x0000000000e0b4ca in luaL_error (L=0xae1b220, fmt=0x12f9a98 "bad argument #%d (%s)")
    at rts/lib/lua/src/lauxlib.cpp:94
#6 0x0000000000e0b186 in luaL_argerror (L=0xae1b220, narg=-1,
    extramsg=0xb1cfef8 "number expected, got boolean") at rts/lib/lua/src/lauxlib.cpp:47
#7 0x0000000000e0b2da in luaL_typerror (L=0xae1b220, narg=-1, tname=0x12fb6dd "number")
    at rts/lib/lua/src/lauxlib.cpp:65
#8 0x0000000000e0b313 in tag_error (L=0xae1b220, narg=-1, tag=3) at rts/lib/lua/src/lauxlib.cpp:70
#9 0x0000000000e0baa4 in luaL_checkinteger (L=0xae1b220, narg=-1)
    at rts/lib/lua/src/lauxlib.cpp:213
0000010 0x0000000000e0bae3 in luaL_optinteger (L=0xae1b220, narg=-1, def=0)
    at rts/lib/lua/src/lauxlib.cpp:220
#11 0x000000000076477c in CLuaHandle::MouseRelease (this=0x2e9d610, x=1097, y=738, button=3)
    at rts/Lua/LuaHandle.cpp:1932
0000012 0x0000000000c892f1 in CEventHandler::MouseRelease (this=0x19b1140 <eventHandler>, x=1097,
    y=738, button=3) at rts/System/EventHandler.cpp:676
0000013 0x00000000007752d4 in LuaInputReceiver::MouseRelease (this=0x7497dc0, x=1097, y=738, button=3)
    at rts/Lua/LuaInputReceiver.cpp:50
0000014 0x00000000006a5698 in CMouseHandler::MouseRelease (this=0x78e2a30, x=1097, y=738, button=3)
---Type <return> to continue, or q <return> to quit---
    at rts/Game/UI/MouseHandler.cpp:389
#15 0x0000000000c9a386 in IMouseInput::HandleSDLMouseEvent (this=0x1e4f0a0, event=...)
    at rts/System/Input/MouseInput.cpp:63
#16 0x0000000000c9b030 in boost::_mfi::mf1<bool, IMouseInput, SDL_Event const&>::operator() (
    this=0x1e4ebc0, p=0x1e4f0a0, a1=...) at /usr/include/boost/bind/mem_fn_template.hpp:165
#17 0x0000000000c9adfa in boost::_bi::list2<boost::_bi::value<IMouseInput*>, boost::arg<1> >::operator()<bool, boost::_mfi::mf1<bool, IMouseInput, SDL_Event const&>, boost::_bi::list1<SDL_Event const&> > (this=0x1e4ebd0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:303
#18 0x0000000000c9ace4 in boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, IMouseInput, SDL_Event const&>, boost::_bi::list2<boost::_bi::value<IMouseInput*>, boost::arg<1> > >::operator()<SDL_Event> (
    this=0x1e4ebc0, a1=...) at /usr/include/boost/bind/bind_template.hpp:47
#19 0x0000000000c9ac17 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, IMouseInput, SDL_Event const&>, boost::_bi::list2<boost::_bi::value<IMouseInput*>, boost::arg<1> > >, void, SDL_Event const&>::invoke (function_obj_ptr=..., a0=...)
    at /usr/include/boost/function/function_template.hpp:153
0000020 0x0000000000c9655d in boost::function1<void, SDL_Event const&>::operator() (this=0x1e4ebb8,
    a0=...) at /usr/include/boost/function/function_template.hpp:767
#21 0x0000000000c96399 in boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::m_invoke<boost::function<void (SDL_Event const&)>, 0u, SDL_Event const&>(void*, boost::function<void (SDL_Event const&)>&, boost::signals2::detail::unsigned_meta_array<0u>, std::tuple<SDL_Event const&>) const (this=0x7fffffffdcff, func=..., args=...)
    at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:92
#22 0x0000000000c96172 in boost::signals2::detail::call_with_tuple_args<boost::signals2::detail::void_type>::operator()<boost::function<void (SDL_Event const&)>, SDL_Event const&, 1ul>(boost::function---Type <return> to continue, or q <return> to quit---
<void (SDL_Event const&)>&, std::tuple<SDL_Event const&>, mpl_::size_t<1ul>) const (
    this=0x7fffffffdcff, func=..., args=...)
    at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:81
#23 0x0000000000c95deb in boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>::m_invoke<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > const&, boost::signals2::detail::void_type const*) const
    (this=0x7fffffffe080, connectionBody=...)
    at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:117
0000024 0x0000000000c95766 in boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>::operator()<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >(boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > const&) const (this=0x7fffffffe080,
    connectionBody=...) at /usr/include/boost/signals2/detail/variadic_slot_invoker.hpp:110
#25 0x0000000000c94c2b in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SD---Type <return> to continue, or q <return> to quit---
L_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> >::dereference() const (this=0x7fffffffde20) at /usr/include/boost/signals2/detail/slot_call_iterator.hpp:82
0000026 0x0000000000c941e0 in boost::iterator_core_access::dereference<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > const&) (f=...)
    at /usr/include/boost/iterator/iterator_facade.hpp:514
0000027 0x0000000000c93294 in boost::iterator_facade<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::con---Type <return> to continue, or q <return> to quit---
nection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> >, boost::signals2::detail::void_type, boost::single_pass_traversal_tag, boost::signals2::detail::void_type const&, long>::operator*() const (this=0x7fffffffde20)
    at /usr/include/boost/iterator/iterator_facade.hpp:639
#28 0x0000000000c924c1 in boost::signals2::optional_last_value<void>::operator()<boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slo---Type <return> to continue, or q <return> to quit---
t_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> >) const (this=0x1a05070, first=..., last=...)
    at /usr/include/boost/signals2/optional_last_value.hpp:55
0000029 0x0000000000c916cf in boost::signals2::detail::combiner_invoker<void>::operator()<boost::signals2::optional_last_value<void>, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >(boost::signals2::optional_last_value<void>&, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, SDL_Event const&>, std::_List_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void (SDL_Event const&)> >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body<std::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (SDL_Event const&), boost::function<void ---Type <return> to continue, or q <return> to quit---
(SDL_Event const&)> >, boost::signals2::mutex> >) const (this=0x7fffffffdedf, combiner=...,
    first=..., last=...) at /usr/include/boost/signals2/detail/result_type_wrapper.hpp:64
#30 0x0000000000c90cf8 in boost::signals2::detail::signal_impl<void (SDL_Event const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (SDL_Event const&)>, boost::function<void (boost::signals2::connection const&, SDL_Event const&)>, boost::signals2::mutex>::operator()(SDL_Event const&) (this=0x1a04f80, args#0=...)
    at /usr/include/boost/signals2/detail/signal_template.hpp:246
#31 0x0000000000c906e7 in boost::signals2::signal<void (SDL_Event const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (SDL_Event const&)>, boost::function<void (boost::signals2::connection const&, SDL_Event const&)>, boost::signals2::mutex>::operator()(SDL_Event const&) (this=0x19b2830 <input>, args#0=...)
    at /usr/include/boost/signals2/detail/signal_template.hpp:695
#32 0x0000000000c90095 in InputHandler::PushEvent (this=0x19b2830 <input>, ev=...)
    at rts/System/Input/InputHandler.cpp:14
#33 0x0000000000c900ed in InputHandler::PushEvents (this=0x19b2830 <input>)
    at rts/System/Input/InputHandler.cpp:25
0000034 0x0000000000cd7539 in SpringApp::Run (this=0x7fffffffe270) at rts/System/SpringApp.cpp:888
0000035 0x0000000000ca6e6d in Run (argc=1, argv=0x7fffffffe458) at rts/System/Main.cpp:48
#36 0x0000000000ca76d5 in main (argc=1, argv=0x7fffffffe458) at rts/System/Main.cpp:108

+Notes

-Issue History
Date Modified Username Field Change
2014-01-15 06:16 abma New Issue
2014-01-15 06:17 abma Steps to Reproduce Updated View Revisions
2014-01-15 06:18 abma Note Added: 0012694
2014-01-15 06:19 abma Note Edited: 0012694 View Revisions
2014-01-15 06:19 abma Note Edited: 0012694 View Revisions
2014-01-15 16:50 jK Note Added: 0012705
2014-01-15 17:03 abma Note Added: 0012707
2014-01-15 17:17 abma Severity block => crash
2014-01-15 17:49 abma Note Edited: 0012707 View Revisions
2014-01-15 21:13 silentwings Note Added: 0012718
2014-01-15 21:15 silentwings Note Edited: 0012718 View Revisions
2014-01-15 21:16 silentwings Note Edited: 0012718 View Revisions
2014-01-16 12:49 abma Note Added: 0012719
2014-01-16 12:53 abma Note Added: 0012720
2014-01-16 12:53 abma Note Edited: 0012720 View Revisions
2014-01-16 12:56 silentwings Note Edited: 0012718 View Revisions
2014-01-20 01:11 jK Changeset attached => spring develop 1403e867
2014-01-20 01:11 jK Status new => resolved
2014-01-20 01:11 jK Resolution open => fixed
2014-01-20 01:11 jK Assigned To => jK
2014-01-20 01:13 jK Relationship added has duplicate 0004280
+Issue History