Test case:
1. Start mir
2. Start mir_egltriangle
3. Press Ctrl+C on mir_egltriangle to stop it.
4. If it doesn't crash then repeat steps 2-3.
Stack trace:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffea994700 (LWP 12624)]
0x000000000041d61e in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
(gdb) bt
#0 0x000000000041d61e in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
#1 0x00007ffff79eae1c in std::__shared_ptr<mir::compositor::Buffer, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#2 0x00007ffff79eae5c in std::shared_ptr<mir::compositor::Buffer>::~shared_ptr() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#3 0x00007ffff79f1045 in void std::_Destroy<std::shared_ptr<mir::compositor::Buffer> >(std::shared_ptr<mir::compositor::Buffer>*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#4 0x00007ffff79f0ac1 in void std::_Destroy_aux<false>::__destroy<std::shared_ptr<mir::compositor::Buffer>*>(std::shared_ptr<mir::compositor::Buffer>*, std::shared_ptr<mir::compositor::Buffer>*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#5 0x00007ffff79f0380 in void std::_Destroy<std::shared_ptr<mir::compositor::Buffer>*>(std::shared_ptr<mir::compositor::Buffer>*, std::shared_ptr<mir::compositor::Buffer>*) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#6 0x00007ffff79ef904 in void std::_Destroy<std::shared_ptr<mir::compositor::Buffer>*, std::shared_ptr<mir::compositor::Buffer> >(std::shared_ptr<mir::compositor::Buffer>*, std::shared_ptr<mir::compositor::Buffer>*, std::allocator<std::shared_ptr<mir::compositor::Buffer> >&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#7 0x00007ffff79f01de in std::deque<std::shared_ptr<mir::compositor::Buffer>, std::allocator<std::shared_ptr<mir::compositor::Buffer> > >::_M_destroy_data_aux(std::_Deque_iterator<std::shared_ptr<mir::compositor::Buffer>, std::shared_ptr<mir::compositor::Buffer>&, std::shared_ptr<mir::compositor::Buffer>*>, std::_Deque_iterator<std::shared_ptr<mir::compositor::Buffer>, std::shared_ptr<mir::compositor::Buffer>&, std::shared_ptr<mir::compositor::Buffer>*>) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#8 0x00007ffff79ef6f3 in std::deque<std::shared_ptr<mir::compositor::Buffer>, std::allocator<std::shared_ptr<mir::compositor::Buffer> > >::_M_destroy_data(std::_Deque_iterator<std::shared_ptr<mir::compositor::Buffer>, std::shared_ptr<mir::compositor::Buffer>&, std::shared_ptr<mir::compositor::Buffer>*>, std::_Deque_iterator<std::shared_ptr<mir::compositor::Buffer>, std::shared_ptr<mir::compositor::Buffer>&, std::shared_ptr<mir::compositor::Buffer>*>, std::allocator<std::shared_ptr<mir::compositor::Buffer> > const&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#9 0x00007ffff79eee93 in std::deque<std::shared_ptr<mir::compositor::Buffer>, std::allocator<std::shared_ptr<mir::compositor::Buffer> > >::~deque() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#10 0x00007ffff79f1436 in mir::compositor::BufferSwapperMulti::~BufferSwapperMulti() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#11 0x00007ffff79f1494 in mir::compositor::BufferSwapperMulti::~BufferSwapperMulti() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#12 0x00007ffff79eb862 in std::default_delete<mir::compositor::BufferSwapper>::operator()(mir::compositor::BufferSwapper*) const ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#13 0x00007ffff79ee141 in std::_Sp_counted_deleter<mir::compositor::BufferSwapper*, std::default_delete<mir::compositor::BufferSwapper>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#14 0x000000000041d6be in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
#15 0x000000000041d635 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
#16 0x00007ffff79eaf2c in std::__shared_ptr<mir::compositor::BufferSwapper, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#17 0x00007ffff79eaf46 in std::shared_ptr<mir::compositor::BufferSwapper>::~shared_ptr() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#18 0x00007ffff79ec5f0 in mir::compositor::BufferBundleSurfaces::~BufferBundleSurfaces() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#19 0x00007ffff79ec320 in void __gnu_cxx::new_allocator<mir::compositor::BufferBundleSurfaces>::destroy<mir::compositor::BufferBundleSurfaces>(mir::compositor::BufferBundleSurfaces*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
---Type <return> to continue, or q <return> to quit---
#20 0x00007ffff79ec2dc in std::enable_if<std::allocator_traits<std::allocator<mir::compositor::BufferBundleSurfaces> >::__destroy_helper<mir::compositor::BufferBundleSurfaces>::value, void>::type std::allocator_traits<std::allocator<mir::compositor::BufferBundleSurfaces> >::_S_destroy<mir::compositor::BufferBundleSurfaces>(std::allocator<mir::compositor::BufferBundleSurfaces>&, mir::compositor::BufferBundleSurfaces*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#21 0x00007ffff79ec292 in void std::allocator_traits<std::allocator<mir::compositor::BufferBundleSurfaces> >::destroy<mir::compositor::BufferBundleSurfaces>(std::allocator<mir::compositor::BufferBundleSurfaces>&, mir::compositor::BufferBundleSurfaces*) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#22 0x00007ffff79ec1d5 in std::_Sp_counted_ptr_inplace<mir::compositor::BufferBundleSurfaces, std::allocator<mir::compositor::BufferBundleSurfaces>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#23 0x000000000041d6be in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
#24 0x000000000041d635 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
#25 0x00007ffff7a2e11a in std::__shared_ptr<mir::surfaces::BufferBundle, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#26 0x00007ffff7a2e15a in std::shared_ptr<mir::surfaces::BufferBundle>::~shared_ptr() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#27 0x00007ffff7a2dc05 in mir::surfaces::Surface::~Surface() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#28 0x00007ffff7a2dcba in mir::surfaces::Surface::~Surface() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#29 0x00007ffff7a31dd6 in std::_Sp_counted_ptr<mir::surfaces::Surface*, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#30 0x000000000041d6be in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
#31 0x000000000041d635 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
#32 0x00007ffff7a30134 in std::__shared_ptr<mir::surfaces::Surface, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#33 0x00007ffff7a3016c in std::shared_ptr<mir::surfaces::Surface>::~shared_ptr() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#34 0x00007ffff7a317d2 in void __gnu_cxx::new_allocator<std::shared_ptr<mir::surfaces::Surface> >::destroy<std::shared_ptr<mir::surfaces::Surface> >(std::shared_ptr<mir::surfaces::Surface>*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#35 0x00007ffff7a31524 in std::enable_if<std::allocator_traits<std::allocator<std::shared_ptr<mir::surfaces::Surface> > >::__destroy_helper<std::shared_ptr<mir::surfaces::Surface> >::value, void>::type std::allocator_traits<std::allocator<std::shared_ptr<mir::surfaces::Surface> > >::_S_destroy<std::shared_ptr<mir::surfaces::Surface> >(std::allocator<std::shared_ptr<mir::surfaces::Surface> >&, std::shared_ptr<mir::surfaces::Surface>*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#36 0x00007ffff7a30e93 in void std::allocator_traits<std::allocator<std::shared_ptr<mir::surfaces::Surface> > >::destroy<std::shared_ptr<mir::surfaces::Surface> >(std::allocator<std::shared_ptr<mir::surfaces::Surface> >&, std::shared_ptr<mir::surfaces::Surface>*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#37 0x00007ffff7a30695 in std::vector<std::shared_ptr<mir::surfaces::Surface>, std::allocator<std::shared_ptr<mir::surfaces::Surface> > >::erase(__gnu_cxx::__normal_iterator<std::shared_ptr<mir::surfaces::Surface>*, std::vector<std::shared_ptr<mir::surfaces::Surface>, std::allocator<std::shared_ptr<mir::surfaces::Surface> > > >) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#38 0x00007ffff7a2f953 in mir::surfaces::SurfaceStack::destroy_surface(std::weak_ptr<mir::surfaces::Surface> const&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#39 0x00007ffff7a31fe6 in mir::surfaces::SurfaceController::destroy_surface(std::weak_ptr<mir::surfaces::Surface> const&) ()
---Type <return> to continue, or q <return> to quit---
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#40 0x00007ffff7a5973c in mir::shell::Surface::destroy() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#41 0x00007ffff7a5a5d8 in mir::shell::ApplicationSession::~ApplicationSession()
() from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#42 0x00007ffff7a55d11 in void __gnu_cxx::new_allocator<mir::shell::ApplicationSession>::destroy<mir::shell::ApplicationSession>(mir::shell::ApplicationSession*) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#43 0x00007ffff7a55cc6 in std::enable_if<std::allocator_traits<std::allocator<mir::shell::ApplicationSession> >::__destroy_helper<mir::shell::ApplicationSession>::value, void>::type std::allocator_traits<std::allocator<mir::shell::ApplicationSession> >::_S_destroy<mir::shell::ApplicationSession>(std::allocator<mir::shell::ApplicationSession>&, mir::shell::ApplicationSession*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#44 0x00007ffff7a55c7c in void std::allocator_traits<std::allocator<mir::shell::ApplicationSession> >::destroy<mir::shell::ApplicationSession>(std::allocator<mir::shell::ApplicationSession>&, mir::shell::ApplicationSession*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#45 0x00007ffff7a55bbf in std::_Sp_counted_ptr_inplace<mir::shell::ApplicationSession, std::allocator<mir::shell::ApplicationSession>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#46 0x000000000041d6be in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
#47 0x000000000041d635 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
#48 0x00007ffff79f9b90 in std::__shared_ptr<mir::frontend::Session, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#49 0x00007ffff79fa0b3 in std::__shared_ptr<mir::frontend::Session, (__gnu_cxx::_Lock_policy)2>::reset() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#50 0x00007ffff79f908a in mir::frontend::SessionMediator::disconnect(google::protobuf::RpcController*, mir::protobuf::Void const*, mir::protobuf::Void*, google::protobuf::Closure*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#51 0x00007ffff79febb3 in void mir::frontend::detail::ProtobufMessageProcessor::invoke<mir::protobuf::Void, mir::protobuf::Void>(void (mir::protobuf::DisplayServer::*)(google::protobuf::RpcController*, mir::protobuf::Void const*, mir::protobuf::Void*, google::protobuf::Closure*), mir::protobuf::wire::Invocation const&) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#52 0x00007ffff79fb1e1 in mir::frontend::detail::ProtobufMessageProcessor::dispatch(mir::protobuf::wire::Invocation const&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#53 0x00007ffff79fb3b1 in mir::frontend::detail::ProtobufMessageProcessor::process_message(std::istream&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#54 0x00007ffff7a16ea6 in mir::frontend::detail::SocketSession::on_new_message(boost::system::error_code const&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#55 0x00007ffff7a1a6be in boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>::operator()(mir::frontend::detail::SocketSession*, boost::system::error_code const&) const ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#56 0x00007ffff7a19fd8 in void boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()>::operator()<boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::system::error_code const&, unsigned long const&> >(boost::_bi::type<void>, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>&, boost::_bi::list2<boost::system::error_code const&, unsigned long const&>&, int) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#57 0x00007ffff7a1977a in void boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> >::operator()<boost::system::error_code, unsigned long>(boost::system::error_code const&, unsigned long const&) ()
---Type <return> to continue, or q <return> to quit---
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#58 0x00007ffff7a18ead in boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >::operator()(boost::system::error_code const&, unsigned long, int) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#59 0x00007ffff7a1bd00 in boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>::operator()() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#60 0x00007ffff7a1bc9c in void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>, ...) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#61 0x00007ffff7a1bae8 in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >(boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>&, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> >&) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#62 0x00007ffff7a1b913 in void boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>, boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::front---Type <return> to continue, or q <return> to quit---
end::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >(boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>&, boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >*) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#63 0x00007ffff7a1b797 in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>, boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > > >(boost::asio::detail::binder2<boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >, boost::system::error_code, unsigned long>&, boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > >&) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#64 0x00007ffff7a1b34b in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::detail::read_streambuf_op<boost::asio::basic_stream_socket<boost::asio::local::stream_protocol, boost::asio::stream_socket_service<boost::asio::local::stream_protocol> >, std::allocator<char>, boost::asio::detail::transfer_exactly_t, boost::_bi::bind_t<void, boost::_mfi::mf1<void, mir::frontend::detail::SocketSession, boost::system::error_code const&>, boost::_bi::list2<boost::_bi::value<mir::frontend::detail::SocketSession*>, boost::arg<1> (*)()> > > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#65 0x00007ffff79dd952 in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#66 0x00007ffff79e0028 in boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service::thread_info&, boost::asio::detail::op_queue<boost::asio::detail::task_io_service_operation>&, boost::system::error_code const&) ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#67 0x00007ffff79dfb25 in boost::asio::detail::task_io_service::run(boost::system::error_code&) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#68 0x00007ffff79e03bd in boost::asio::io_service::run() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#69 0x00007ffff7a14df9 in boost::_mfi::mf0<unsigned long, boost::asio::io_servic---Type <return> to continue, or q <return> to quit---
e>::operator()(boost::asio::io_service*) const ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#70 0x00007ffff7a14c27 in unsigned long boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> >::operator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list0>(boost::_bi::type<unsigned long>, boost::_mfi::mf0<unsigned long, boost::asio::io_service>&, boost::_bi::list0&, long) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#71 0x00007ffff7a149cd in boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >::operator()() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#72 0x00007ffff7a14594 in unsigned long std::_Bind_simple<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > ()>::_M_invoke<>(std::_Index_tuple<>) () from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#73 0x00007ffff7a140dd in std::_Bind_simple<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > ()>::operator()() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#74 0x00007ffff7a13d58 in std::thread::_Impl<std::_Bind_simple<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > ()> >::_M_run() ()
from /home/dan/bzr/mir/trunk/build/lib/libmirserver.so.0
#75 0x00007ffff72129f0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#76 0x00007ffff746af8e in start_thread (arg=0x7fffea994700)
at pthread_create.c:311
#77 0x00007ffff6c7be1d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
It looks like bug 1167164 might be a root cause. Look at that one first.