RigsOfRods / rigs-of-rods

Main development repository for Rigs of Rods soft-body physics simulator
https://www.rigsofrods.org
GNU General Public License v3.0
1.01k stars 175 forks source link

Multiplayer: Various client segfaults #2178

Closed ulteq closed 5 years ago

ulteq commented 5 years ago
- [x] 3.

Thread 1 "RoR" received signal SIGSEGV, Segmentation fault. 0x0000000000000111 in ?? () (gdb) bt

0 0x0000000000000111 in ?? ()

1 0x0000555555642275 in RoR::GfxCharacter::~GfxCharacter (this=0x555559ffc2e0, __in_chrg=) at /usr/include/c++/8.2.1/bits/unique_ptr.h:342

2 0x000055555564241a in Character::~Character (this=0x555562cca660, __in_chrg=) at ~/source/main/gameplay/Character.cpp:78

3 0x000055555562a6e9 in std::default_delete::operator() (this=0x55556024dab0, __ptr=0x555562cca660) at /usr/include/c++/8.2.1/bits/unique_ptr.h:347

4 std::unique_ptr<Character, std::default_delete >::~unique_ptr (this=0x55556024dab0, __in_chrg=) at /usr/include/c++/8.2.1/bits/unique_ptr.h:274

5 std::_Destroy<std::unique_ptr<Character, std::default_delete > > (__pointer=0x55556024dab0) at /usr/include/c++/8.2.1/bits/stl_construct.h:98

6 std::_Destroy_aux::destroy<std::unique_ptr<Character, std::default_delete >*> (last=, __first=0x55556024dab0) at /usr/include/c++/8.2.1/bits/stl_construct.h:108

7 std::_Destroy<std::unique_ptr<Character, std::default_delete >*> (last=, first=) at /usr/include/c++/8.2.1/bits/stl_construct.h:137

8 std::_Destroy<std::unique_ptr<Character, std::default_delete >*, std::unique_ptr<Character, std::default_delete > > (last=0x55556024dac0, first=) at /usr/include/c++/8.2.1/bits/stl_construct.h:206

9 std::vector<std::unique_ptr<Character, std::default_delete >, std::allocator<std::unique_ptr<Character, std::default_delete > > >::~vector (this=0x7fffffffe038, __in_chrg=)

at /usr/include/c++/8.2.1/bits/stl_vector.h:567

10 RoR::CharacterFactory::~CharacterFactory (this=0x7fffffffe038, __in_chrg=) at ~/source/main/gameplay/CharacterFactory.h:31

11 SimController::~SimController (this=0x7fffffffdf20, __in_chrg=) at ~/source/main/gameplay/RoRFrameListener.h:61

- [x] 4.

Thread 1 "RoR" received signal SIGSEGV, Segmentation fault. RoR::ActorManager::CheckNetworkStreamsOk (this=0x28, sourceid=72) at ~/rigs-of-rods/source/main/physics/BeamFactory.cpp:509 509 if (m_stream_mismatches[sourceid].size() > 0) (gdb) bt

0 RoR::ActorManager::CheckNetworkStreamsOk (this=0x28, sourceid=72) at ~/rigs-of-rods/source/main/physics/BeamFactory.cpp:509

1 0x00005555557df7aa in RoR::GUI::MpClientList::updateSlot (this=, row=0x5555581987f8, c=..., self=) at ~/rigs-of-rods/source/main/gameplay/RoRFrameListener.h:100

2 0x00005555557e07dd in RoR::GUI::MpClientList::update (this=0x5555581987a0) at ~/rigs-of-rods/source/main/gui/panels/GUI_MultiplayerClientList.cpp:322

3 0x000055555562d898 in RoR::MainMenu::MainMenuLoopUpdate (this=0x7fffffffdd00, seconds_since_last_frame=0.0166713931) at ~/rigs-of-rods/source/main/MainMenu.cpp:149

4 0x000055555562dccc in RoR::MainMenu::EnterMainMenuLoop (this=this@entry=0x7fffffffdd00) at ~/rigs-of-rods/source/main/MainMenu.cpp:84

5 0x0000555555609516 in main (argc=, argv=) at ~/rigs-of-rods/source/main/main.cpp:333

tritonas00 commented 5 years ago
Thread 17 "RoR" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd4aa4700 (LWP 32322)]
FlexBody::ComputeFlexbody (this=0x55555fac0e20) at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/main/physics/flex/FlexBody.cpp:632
632            Vector3 diffX = nodes[m_locators[i].nx].AbsPosition - nodes[m_locators[i].ref].AbsPosition;
#0  FlexBody::ComputeFlexbody (this=0x55555fac0e20) at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/main/physics/flex/FlexBody.cpp:632
#1  0x000055555581eeb1 in std::function<void ()>::operator()() const (this=0x55555cddd8e0) at /usr/include/c++/8.2.1/bits/std_function.h:682
#2  ThreadPool::ThreadPool(int)::{lambda()#1}::operator()() const (__closure=0x55555789c318)
    at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/main/threadpool/ThreadPool.h:135
#3  std::__invoke_impl<void, ThreadPool::ThreadPool(int)::{lambda()#1}>(std::__invoke_other, ThreadPool::ThreadPool(int)::{lambda()#1}&&) (__f=...)
    at /usr/include/c++/8.2.1/bits/invoke.h:60
#4  std::__invoke<ThreadPool::ThreadPool(int)::{lambda()#1}>(std::__invoke_result&&, (ThreadPool::ThreadPool(int)::{lambda()#1}&&)...) (__fn=...)
    at /usr/include/c++/8.2.1/bits/invoke.h:95
#5  std::thread::_Invoker<std::tuple<ThreadPool::ThreadPool(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x55555789c318)
    at /usr/include/c++/8.2.1/thread:244
#6  std::thread::_Invoker<std::tuple<ThreadPool::ThreadPool(int)::{lambda()#1}> >::operator()() (this=0x55555789c318)
    at /usr/include/c++/8.2.1/thread:253
#7  std::thread::_State_impl<std::thread::_Invoker<std::tuple<ThreadPool::ThreadPool(int)::{lambda()#1}> > >::_M_run() (this=0x55555789c310)
    at /usr/include/c++/8.2.1/thread:196
#8  0x00007ffff705b063 in std::execute_native_thread_routine (__p=0x55555789c310) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
#9  0x00007ffff7954a9d in start_thread () from /usr/lib/libpthread.so.0

I got this once when i disconnected and tried to connect again:

Thread 1 "RoR" received signal SIGSEGV, Segmentation fault.
0x00005555559b9630 in AngelScript::CScriptDictionary::Release (this=0x3a53504620747372)
    at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/angelscript_addons/scriptdictionary/scriptdictionary.cpp:195
195     gcFlag = false;
#0  0x00005555559b9630 in AngelScript::CScriptDictionary::Release (this=0x3a53504620747372)
    at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/angelscript_addons/scriptdictionary/scriptdictionary.cpp:195
#1  0x0000555555a00591 in asCScriptEngine::CallObjectMethod (this=<optimized out>, obj=<optimized out>, i=0x555557484bd0, s=<optimized out>)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_scriptengine.cpp:3973
#2  0x0000555555a5c82e in asCModule::UninitializeGlobalProp (prop=0x55555fcafc80, this=0x55555812dc60)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_module.cpp:474
#3  asCModule::UninitializeGlobalProp (this=0x55555812dc60, prop=0x55555fcafc80)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_module.cpp:458
#4  0x0000555555a5f100 in asCModule::RemoveGlobalVar (this=this@entry=0x55555812dc60, index=2)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_module.cpp:967
#5  0x0000555555a23cba in asCBuilder::CompileGlobalVar (this=this@entry=0x7fffffffd360, sectionName=sectionName@entry=0x555555ab7c41 "addvar", 
    code=<optimized out>, lineOffset=lineOffset@entry=0) at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_builder.cpp:399
#6  0x0000555555a5bd26 in asCModule::CompileGlobalVar (this=0x55555812dc60, sectionName=0x555555ab7c41 "addvar", 
    code=0x55555812b910 "dictionary lastServerContact;", lineOffset=0)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_module.cpp:1644
#7  0x00005555559a5528 in ScriptEngine::addVariable (this=0x555557459e90, arg="dictionary lastServerContact;")
    at /usr/include/c++/8.2.1/bits/basic_string.h:2290
#8  0x0000555555a2abe8 in X64_CallFunction (args=0x3a53504620747382, args@entry=0x7fffffffdaa0, cnt=544502642, 
    func=0x5555559b9620 <AngelScript::CScriptDictionary::Release() const>, 
    func@entry=0x555555994d70 <GameScript::addScriptVariable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>, retQW2=@0x555557484c60: 93824998702960, returnFloat=5)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_callfunc_x64_gcc.cpp:74
#9  0x0000555555a2aef8 in CallSystemFunctionNative (context=context@entry=0x55555b549390, descr=descr@entry=0x5555574b0a60, obj=0x5555574b36d0, 
    args=<optimized out>, retPointer=<optimized out>, retQW2=@0x7fffffffdcf0: 0, secondObject=0x0)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_callfunc_x64_gcc.cpp:468
#10 0x0000555555a29dc8 in CallSystemFunction (id=<optimized out>, context=context@entry=0x55555b549390)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_callfunc.cpp:718
#11 0x00005555559ed0bf in asCContext::ExecuteNext (this=this@entry=0x55555b549390)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_context.cpp:2525
#12 0x00005555559ef058 in asCContext::Execute (this=0x55555b549390)
    at /home/babis/Downloads/ror-dependencies/Source/angelscript/source/as_context.cpp:1318
#13 0x00005555559bdc1b in AngelScript::ExecuteString (engine=0x55555745bfe0, code=<optimized out>, ref=0x0, refTypeId=0, mod=<optimized out>, 
    ctx=0x55555b549390) at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/angelscript_addons/scripthelper/scripthelper.cpp:178
#14 0x00005555559aa755 in ScriptEngine::executeString (this=0x555557459e90, 
    command="{\ngame.registerForEvent(268435455);\n}{\ngame.addScriptVariable(\"\"\"dictionary lastServerContact;\"\"\");\n}{\ngame.addScriptVariable(\"\"\"int clientVersion;\"\"\");\n}") at /usr/include/c++/8.2.1/bits/basic_string.h:2290
#15 0x00005555559abc01 in ScriptEngine::framestep (this=0x555557459e90, dt=dt@entry=0.00569068361) at /usr/include/c++/8.2.1/bits/basic_string.h:936
#16 0x000055555562e16b in RoR::MainMenu::MainMenuLoopUpdate (this=0x7fffffffe270, seconds_since_last_frame=0.00569068361)
    at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/main/utils/Singleton.h:86
#17 0x000055555562e65c in RoR::MainMenu::EnterMainMenuLoop (this=this@entry=0x7fffffffe270)
    at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/main/MainMenu.cpp:84
#18 0x0000555555609ec6 in main (argc=<optimized out>, argv=<optimized out>)
    at /home/babis/Downloads/ror-dependencies/rigs-of-rods/source/main/main.cpp:333
ulteq commented 5 years ago

I can't reproduce any of them anymore.