I got a bit better trace below and a few more pieces of information ( I am annoyed that I can't dig more because a lot of the values are optimized out ). New Info 1: This happens every time I exit. So lauch, then click exit, and quit. Crashes every time. New Info 2: The movable object is ok in this scenario, but the I->Movable is definitely not ok. I is an attachment point reference. New Info 3: I stepped through the exit process 4 separate times breaking on src/components/ogre/model/Model.cpp:714 ( one frame up from where the crash happens ) and it exited normally every single time. If I had to make a guess, i would say that it looks like since attachPoints is reference, that external to here the dereferenced object is probably deleted first in the teardown maybe in another thread or something. It gets a bit murky here, but only when I trap in the lowest frame, can i see the segv, never if I go up one. Gotta be some sort of race condition, relating to the attachment points or maybe the attachment point wrapper. src/components/ogre/model/Model.cpp:770 Ember::OgreView::Model::Model::detachObject 770: if (I->Movable == movable) { #0 Ember::OgreView::Model::Model::detachObject (this=, movable=0x55b50eef8dc0) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/components/ogre/model/Model.cpp:770 #1 0x000055b5002d908b in Ember::OgreView::Model::Model::attachToNode (this=0x55b50e7edd30, nodeProvider=nodeProvider@entry=0x0) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/components/ogre/model/Model.cpp:711 #2 0x000055b5003061ad in Ember::OgreView::Model::ModelMount::~ModelMount (this=0x55b50e7ee0f0, __in_chrg=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/components/ogre/model/ModelMount.cpp:48 #3 0x000055b5003061e9 in Ember::OgreView::Model::ModelMount::~ModelMount (this=0x55b50e7ee0f0, __in_chrg=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/components/ogre/model/ModelMount.cpp:47 #4 0x000055b500307da3 in std::default_delete::operator() (this=0x55b50e75c5f0, __ptr=) at /usr/include/c++/8/bits/unique_ptr.h:347 #5 std::unique_ptr >::~unique_ptr (this=0x55b50e75c5f0 = {...}, __in_chrg=) at /usr/include/c++/8/bits/unique_ptr.h:274 #6 Ember::OgreView::Model::ModelAttachment::~ModelAttachment (this=0x55b50e75c5a0, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/components/ogre/model/ModelAttachment.h:60 #7 0x000055b500307df9 in Ember::OgreView::Model::ModelAttachment::~ModelAttachment (this=0x55b50e75c5a0, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/components/ogre/model/ModelAttachment.h:60 #8 0x000055b5004c8ff4 in std::default_delete::operator() (this=0x55b50e7edb40, __ptr=) at /usr/include/c++/8/bits/unique_ptr.h:347 #9 std::unique_ptr >::~unique_ptr (this=0x55b50e7edb40 = {...}, __in_chrg=) at /usr/include/c++/8/bits/unique_ptr.h:274 #10 Ember::EmberEntity::~EmberEntity (this=0x55b50e7ed610, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/domain/EmberEntity.h:54 #11 0x000055b5004c90d9 in Ember::EmberEntity::~EmberEntity (this=0x55b50e7ed610, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/domain/EmberEntity.h:54 #12 0x00007fdfe12ea1d2 in std::default_delete::operator() (this=0x55b50e7ed538, __ptr=) at /usr/include/c++/8/bits/unique_ptr.h:347 #13 std::unique_ptr >::~unique_ptr (this=0x55b50e7ed538 = {...}, __in_chrg=) at /usr/include/c++/8/bits/unique_ptr.h:274 #14 std::pair, std::allocator > const, std::unique_ptr > >::~pair (this=0x55b50e7ed518 = {...}, __in_chrg=) at /usr/include/c++/8/bits/stl_pair.h:208 #15 __gnu_cxx::new_allocator, std::allocator > const, std::unique_ptr > >, true> >::destroy, std::allocator > const, std::unique_ptr > > > (this=, __p=0x55b50e7ed518 = {...}) at /usr/include/c++/8/ext/new_allocator.h:140 #16 std::allocator_traits, std::allocator > const, std::unique_ptr > >, true> > >::destroy, std::allocator > const, std::unique_ptr > > > (__a=..., __p=0x55b50e7ed518 = {...}) at /usr/include/c++/8/bits/alloc_traits.h:487 #17 std::__detail::_Hashtable_alloc, std::allocator > const, std::unique_ptr > >, true> > >::_M_deallocate_node (this=, __n=0x55b50e7ed510) at /usr/include/c++/8/bits/hashtable_policy.h:2100 #18 std::__detail::_Hashtable_alloc, std::allocator > const, std::unique_ptr > >, true> > >::_M_deallocate_nodes (this=0x7ffc1525b1a0, __n=0x55b50d1c1210) at /usr/include/c++/8/bits/hashtable_policy.h:2113 #19 std::_Hashtable, std::allocator >, std::pair, std::allocator > const, std::unique_ptr > >, std::allocator, std::allocator > const, std::unique_ptr > > >, std::__detail::_Select1st, std::equal_to, std::allocator > >, std::hash, std::allocator > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::clear (this=this@entry=0x7ffc1525b1a0) at /usr/include/c++/8/bits/hashtable.h:2050 #20 0x00007fdfe12e5829 in std::unordered_map, std::allocator >, std::unique_ptr >, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, std::unique_ptr > > > >::clear (this=0x7ffc1525b1a0 = {...}) at /usr/include/c++/8/bits/unordered_map.h:842 #21 Eris::View::~View (this=0x55b509333360, __in_chrg=) at /home/sryan/code/wf/work/source/worldforge/libs/eris/src/Eris/View.cpp:37 #22 0x00007fdfe1285817 in std::default_delete::operator() (this=0x55b5093ad908, __ptr=0x55b509333360) at /usr/include/c++/8/bits/unique_ptr.h:347 #23 std::unique_ptr >::~unique_ptr (this=0x55b5093ad908 = {...}, __in_chrg=) at /usr/include/c++/8/bits/unique_ptr.h:274 #24 Eris::Avatar::~Avatar (this=0x55b5093ad830, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/libs/eris/src/Eris/Avatar.cpp:55 #25 0x00007fdfe1285909 in Eris::Avatar::~Avatar (this=0x55b5093ad830, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/libs/eris/src/Eris/Avatar.cpp:55 #26 0x00007fdfe1282bc7 in std::default_delete::operator() (this=0x55b50a3ec330, __ptr=) at /usr/include/c++/8/bits/unique_ptr.h:347 #27 std::unique_ptr >::~unique_ptr (this=0x55b50a3ec330 = {...}, __in_chrg=) at /usr/include/c++/8/bits/unique_ptr.h:274 #28 std::pair, std::allocator > const, std::unique_ptr > >::~pair (this=0x55b50a3ec310 = {...}, __in_chrg=) at /usr/include/c++/8/bits/stl_pair.h:208 #29 __gnu_cxx::new_allocator, std::allocator > const, std::unique_ptr > > > >::destroy, std::allocator > const, std::unique_ptr > > > (this=0x55b502618ba0, __p=0x55b50a3ec310 = {...}) at /usr/include/c++/8/ext/new_allocator.h:140 #30 std::allocator_traits, std::allocator > const, std::unique_ptr > > > > >::destroy, std::allocator > const, std::unique_ptr > > > (__a=..., __p=0x55b50a3ec310 = {...}) at /usr/include/c++/8/bits/alloc_traits.h:487 #31 std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, std::unique_ptr > >, std::_Select1st, std::allocator > const, std::unique_ptr > > >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::unique_ptr > > > >::_M_destroy_node (this=0x55b502618ba0, __p=0x55b50a3ec2f0) at /usr/include/c++/8/bits/stl_tree.h:661 #32 std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, std::unique_ptr > >, std::_Select1st, std::allocator > const, std::unique_ptr > > >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::unique_ptr > > > >::_M_drop_node (this=0x55b502618ba0, __p=0x55b50a3ec2f0) at /usr/include/c++/8/bits/stl_tree.h:669 #33 std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, std::unique_ptr > >, std::_Select1st, std::allocator > const, std::unique_ptr > > >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::unique_ptr > > > >::_M_erase_aux (this=this@entry=0x55b502618ba0, __position=...) at /usr/include/c++/8/bits/stl_tree.h:2493 #34 0x00007fdfe127a2b0 in std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, std::unique_ptr > >, std::_Select1st, std::allocator > const, std::unique_ptr > > >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::unique_ptr > > > >::erase[abi:cxx11](std::_Rb_tree_iterator, std::allocator > const, std::unique_ptr > > >) (__position=..., this=0x55b502618ba0) at /usr/include/c++/8/bits/stl_tree.h:1136 #35 std::map, std::allocator >, std::unique_ptr >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::unique_ptr > > > >::erase[abi:cxx11](std::_Rb_tree_iterator, std::allocator > const, std::unique_ptr > > >) (__position=..., this=0x55b502618ba0 = {...}) at /usr/include/c++/8/bits/stl_map.h:1037 #36 Eris::Account::destroyAvatar (this=this@entry=0x55b502618a08, avatarId="1981") at /home/sryan/code/wf/work/source/worldforge/libs/eris/src/Eris/Account.cpp:431 #37 0x00007fdfe127bb4b in Eris::Account::~Account (this=0x55b502618a08, __in_chrg=, __vtt_parm=) at /usr/include/c++/8/bits/stl_tree.h:976 #38 0x000055b5004a7174 in Ember::AccountAvailableState::~AccountAvailableState (this=0x55b502618920, __in_chrg=, __vtt_parm=) at /usr/include/sigc++-2.0/sigc++/signal.h:790 #39 0x000055b5004a7279 in Ember::AccountAvailableState::~AccountAvailableState (this=0x55b502618920, __in_chrg=, __vtt_parm=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/services/server/AccountAvailableState.cpp:49 #40 0x000055b5004a7c77 in Ember::StateBaseCore::destroyChildState (this=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/services/server/StateBase.h:136 #41 Ember::ConnectedState::disconnecting (this=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/services/server/ConnectedState.cpp:53 #42 0x00007fdfe12a5177 in sigc::internal::signal_emit0::emit (impl=0x55b50571a1b0) at /usr/include/sigc++-2.0/sigc++/signal_base.h:232 #43 sigc::signal0::emit (this=0x55b506cf7428) at /usr/include/sigc++-2.0/sigc++/signal.h:2804 #44 Eris::Connection::disconnect (this=0x55b506cf7358) at /home/sryan/code/wf/work/source/worldforge/libs/eris/src/Eris/Connection.cpp:133 #45 0x000055b5004a7ce1 in Ember::ConnectedState::disconnect (this=) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/services/server/ConnectedState.cpp:43 #46 0x000055b5004b8428 in Ember::ServerService::stop (this=0x55b501729ae0) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/services/server/ServerService.cpp:74 #47 0x000055b500189d29 in Ember::Application::~Application (this=0x7ffc1525be80, __in_chrg=, __vtt_parm=) at /usr/include/c++/8/bits/unique_ptr.h:342 #48 0x000055b50017427d in main (argc=, argc@entry=1, argv=, argv@entry=0x7ffc1525c1f8) at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/main/Ember.cpp:173 #49 0x00007fdfdf69209b in __libc_start_main (main=0x55b500173c90 , argc=1, argv=0x7ffc1525c1f8, init=, fini=, rtld_fini=, stack_end=0x7ffc1525c1e8) at ../csu/libc-start.c:308 #50 0x000055b50018683a in _start () at /home/sryan/code/wf/work/source/worldforge/clients/ember/src/main/ConfigBoundLogObserver.cpp:77