View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0004273 | Spring engine | General | public | 2014-01-15 06:16 | 2014-01-20 01:13 | ||||
Reporter | abma | ||||||||
Assigned To | jK | ||||||||
Priority | normal | Severity | crash | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | 96.0.1+git | ||||||||
Target Version | 97.0 | Fixed in Version | |||||||
Summary | 0004273: 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 Reproduce | start game, select unit, right click -> instant exit | ||||||||
Additional Information | Spring 96.0.1-159-g7f66476 develop | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
abma (administrator) 2014-01-15 06:18 Last edited: 2014-01-15 06:19 |
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 ?! |
jK (developer) 2014-01-15 16:50 |
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. |
abma (administrator) 2014-01-15 17:03 Last edited: 2014-01-15 17:49 |
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 |
silentwings (reporter) 2014-01-15 21:13 Last edited: 2014-01-16 12:56 |
"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. |
abma (administrator) 2014-01-16 12:49 |
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. |
abma (administrator) 2014-01-16 12:53 Last edited: 2014-01-16 12:53 |
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 |
![]() |
|||
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 |