After unplugging and replugging a monitor a few times (but not obviously related to a plug event as some time passed before the crash) I got the following core and stack trace:
Core was generated by `bin/mir_demo_server.bin --host /tmp/mir_socket --display-config sidebyside'.
Program terminated with signal SIGABRT, Aborted.
#0 0x00007fa8d5e54267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
55 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007fa8d5e54267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1 0x00007fa8d5e55eca in __GI_abort () at abort.c:89
#2 0x00007fa8d5e97c53 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7fa8d5fb01a8 "*** Error in `%s': %s: 0x%s ***\n")
at ../sysdeps/posix/libc_fatal.c:175
#3 0x00007fa8d5e9fc69 in malloc_printerr (ptr=<optimised out>, str=0x7fa8d5fac2fa "free(): invalid pointer", action=1) at malloc.c:4965
#4 _int_free (av=<optimised out>, p=<optimised out>, have_lock=0) at malloc.c:3834
#5 0x00007fa8d5ea389c in __GI___libc_free (mem=<optimised out>) at malloc.c:2950
#6 0x00007fa8cde5e319 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#7 0x00007fa8cde5e3ce in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#8 0x00007fa8cde420d1 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#9 0x00007fa8cdfc1047 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#10 0x00007fa8cdf5a4ab in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#11 0x00007fa8ce01c463 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#12 0x00007fa8d3bd7ef6 in dri2_swap_buffers (drv=<optimised out>, disp=<optimised out>, draw=0x1a25ef0)
at ../../../../../../src/egl/drivers/dri2/platform_mir.c:460
#13 0x00007fa8d3bc95e5 in eglSwapBuffers (dpy=0x195e900, surface=<optimised out>) at ../../../../../src/egl/main/eglapi.c:830
#14 0x00007fa8d5423e39 in mir::graphics::nested::detail::DisplayBuffer::swap_buffers (this=0x1970e00)
at /home/alan/display_server/mir/src/server/graphics/nested/display_buffer.cpp:73
#15 0x00007fa8d543791b in mir::renderer::gl::CurrentRenderTarget::swap_buffers (this=0x7fa8ac015e58)
at /home/alan/display_server/mir/src/renderers/gl/renderer.cpp:68
#16 0x00007fa8d543860b in mir::renderer::gl::Renderer::render (this=0x7fa8ac015e50, renderables=std::vector of length 0, capacity 0)
at /home/alan/display_server/mir/src/renderers/gl/renderer.cpp:206
#17 0x00007fa8d530d546 in mir::compositor::DefaultDisplayBufferCompositor::composite(std::vector<std::shared_ptr<mir::compositor::SceneElement>, std::allocator<std::shared_ptr<mir::compositor::SceneElement> > >&&) (this=0x7fa8ac079c00,
scene_elements=<unknown type in /home/alan/.clion11/system/cmake/generated/9ec817d/9ec817d/Debug/lib/libmirserver.so.35, CU 0x680c97, DIE 0x68d3c1>)
at /home/alan/display_server/mir/src/server/compositor/default_display_buffer_compositor.cpp:83
#18 0x00007fa8d53197e4 in mir::compositor::CompositingFunctor::operator() (this=0x1adda70)
at /home/alan/display_server/mir/src/server/compositor/multi_threaded_compositor.cpp:143
#19 0x00007fa8d531c74e in std::_Function_handler<void (), std::reference_wrapper<mir::compositor::CompositingFunctor> >::_M_invoke(std::_Any_data const&)
(__functor=...) at /usr/include/c++/4.9/functional:2069
#20 0x00007fa8d51f8f28 in std::function<void ()>::operator()() const (this=0x7fa8c6ffcdd0) at /usr/include/c++/4.9/functional:2439
#21 0x00007fa8d542e621 in (anonymous namespace)::Task::execute (this=0x7fa8c6ffcdd0)
at /home/alan/display_server/mir/src/server/thread/basic_thread_pool.cpp:40
#22 0x00007fa8d542e957 in (anonymous namespace)::Worker::operator() (this=0x1a54640)
at /home/alan/display_server/mir/src/server/thread/basic_thread_pool.cpp:91
#23 0x00007fa8d54322cb in std::__invoke<(anonymous namespace)::Worker> (__f=...) at /usr/include/c++/4.9/functional:202
#24 0x00007fa8d54322a0 in std::reference_wrapper<(anonymous namespace)::Worker>::operator()<>(void) const (this=0x1266138)
at /usr/include/c++/4.9/functional:435
#25 0x00007fa8d543223a in std::_Bind_simple<std::reference_wrapper<(anonymous namespace)::Worker>()>::_M_invoke<>(std::_Index_tuple<>) (this=0x1266138)
at /usr/include/c++/4.9/functional:1700
#26 0x00007fa8d543216c in std::_Bind_simple<std::reference_wrapper<(anonymous namespace)::Worker>()>::operator()(void) (this=0x1266138)
at /usr/include/c++/4.9/functional:1688
#27 0x00007fa8d54320da in std::thread::_Impl<std::_Bind_simple<std::reference_wrapper<(anonymous namespace)::Worker>()> >::_M_run(void) (this=0x1266120)
at /usr/include/c++/4.9/thread:115
#28 0x00007fa8d66d7e30 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#29 0x00007fa8d61f06aa in start_thread (arg=0x7fa8c6ffd700) at pthread_create.c:333
#30 0x00007fa8d5f25eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
During testing of display configuration errors while replugging an external monitor (on a laptop) I crashed the nested Mir server...
/1/ The system compositor:
$ DISPLAY= sudo bin/mir_demo_server --window-manager system-compositor --arw-file --vt 1 --display-config sidebyside
/2/ The nested compositor:
$ DISPLAY= bin/mir_demo_server --host /tmp/mir_socket --display-config sidebyside
/3/ A client:
$ bin/mir_ demo_client_ egltriangle
After unplugging and replugging a monitor a few times (but not obviously related to a plug event as some time passed before the crash) I got the following core and stack trace:
Core was generated by `bin/mir_ demo_server. bin --host /tmp/mir_socket --display-config sidebyside'. unix/sysv/ linux/raise. c:55 unix/sysv/ linux/raise. c: No such file or directory. unix/sysv/ linux/raise. c:55 do_abort@ entry=1, fmt=fmt@ entry=0x7fa8d5f b01a8 "*** Error in `%s': %s: 0x%s ***\n") posix/libc_ fatal.c: 175 x86_64- linux-gnu/ dri/i965_ dri.so x86_64- linux-gnu/ dri/i965_ dri.so x86_64- linux-gnu/ dri/i965_ dri.so x86_64- linux-gnu/ dri/i965_ dri.so x86_64- linux-gnu/ dri/i965_ dri.so x86_64- linux-gnu/ dri/i965_ dri.so ./../.. /../src/ egl/drivers/ dri2/platform_ mir.c:460 ./../.. /src/egl/ main/eglapi. c:830 :nested: :detail: :DisplayBuffer: :swap_buffers (this=0x1970e00) display_ server/ mir/src/ server/ graphics/ nested/ display_ buffer. cpp:73 :gl::CurrentRen derTarget: :swap_buffers (this=0x7fa8ac0 15e58) display_ server/ mir/src/ renderers/ gl/renderer. cpp:68 :gl::Renderer: :render (this=0x7fa8ac0 15e50, renderables= std::vector of length 0, capacity 0) display_ server/ mir/src/ renderers/ gl/renderer. cpp:206 ::DefaultDispla yBufferComposit or::composite( std::vector< std::shared_ ptr<mir: :compositor: :SceneElement> , std::allocator< std::shared_ ptr<mir: :compositor: :SceneElement> > >&&) (this=0x7fa8ac0 79c00, elements= <unknown type in /home/alan/ .clion11/ system/ cmake/generated /9ec817d/ 9ec817d/ Debug/lib/ libmirserver. so.35, CU 0x680c97, DIE 0x68d3c1>) display_ server/ mir/src/ server/ compositor/ default_ display_ buffer_ compositor. cpp:83 ::CompositingFu nctor:: operator( ) (this=0x1adda70) display_ server/ mir/src/ server/ compositor/ multi_threaded_ compositor. cpp:143 handler< void (), std::reference_ wrapper< mir::compositor ::CompositingFu nctor> >::_M_invoke( std::_Any_ data const&) c++/4.9/ functional: 2069 fcdd0) at /usr/include/ c++/4.9/ functional: 2439 ::Task: :execute (this=0x7fa8c6f fcdd0) display_ server/ mir/src/ server/ thread/ basic_thread_ pool.cpp: 40 ::Worker: :operator( ) (this=0x1a54640) display_ server/ mir/src/ server/ thread/ basic_thread_ pool.cpp: 91 invoke< (anonymous namespace)::Worker> (__f=...) at /usr/include/ c++/4.9/ functional: 202 wrapper< (anonymous namespace) ::Worker> ::operator( )<>(void) const (this=0x1266138) c++/4.9/ functional: 435 simple< std::reference_ wrapper< (anonymous namespace) ::Worker> ()>::_M_ invoke< >(std:: _Index_ tuple<> ) (this=0x1266138) c++/4.9/ functional: 1700 simple< std::reference_ wrapper< (anonymous namespace) ::Worker> ()>::operator( )(void) (this=0x1266138) c++/4.9/ functional: 1688 :_Impl< std::_Bind_ simple< std::reference_ wrapper< (anonymous namespace) ::Worker> ()> >::_M_run(void) (this=0x1266120) c++/4.9/ thread: 115 x86_64- linux-gnu/ libstdc+ +.so.6 d700) at pthread_ create. c:333 unix/sysv/ linux/x86_ 64/clone. S:109
Program terminated with signal SIGABRT, Aborted.
#0 0x00007fa8d5e54267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/
55 ../sysdeps/
(gdb) bt
#0 0x00007fa8d5e54267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/
#1 0x00007fa8d5e55eca in __GI_abort () at abort.c:89
#2 0x00007fa8d5e97c53 in __libc_message (do_abort=
at ../sysdeps/
#3 0x00007fa8d5e9fc69 in malloc_printerr (ptr=<optimised out>, str=0x7fa8d5fac2fa "free(): invalid pointer", action=1) at malloc.c:4965
#4 _int_free (av=<optimised out>, p=<optimised out>, have_lock=0) at malloc.c:3834
#5 0x00007fa8d5ea389c in __GI___libc_free (mem=<optimised out>) at malloc.c:2950
#6 0x00007fa8cde5e319 in ?? () from /usr/lib/
#7 0x00007fa8cde5e3ce in ?? () from /usr/lib/
#8 0x00007fa8cde420d1 in ?? () from /usr/lib/
#9 0x00007fa8cdfc1047 in ?? () from /usr/lib/
#10 0x00007fa8cdf5a4ab in ?? () from /usr/lib/
#11 0x00007fa8ce01c463 in ?? () from /usr/lib/
#12 0x00007fa8d3bd7ef6 in dri2_swap_buffers (drv=<optimised out>, disp=<optimised out>, draw=0x1a25ef0)
at ../../.
#13 0x00007fa8d3bc95e5 in eglSwapBuffers (dpy=0x195e900, surface=<optimised out>) at ../../.
#14 0x00007fa8d5423e39 in mir::graphics:
at /home/alan/
#15 0x00007fa8d543791b in mir::renderer:
at /home/alan/
#16 0x00007fa8d543860b in mir::renderer:
at /home/alan/
#17 0x00007fa8d530d546 in mir::compositor
scene_
at /home/alan/
#18 0x00007fa8d53197e4 in mir::compositor
at /home/alan/
#19 0x00007fa8d531c74e in std::_Function_
(__functor=...) at /usr/include/
#20 0x00007fa8d51f8f28 in std::function<void ()>::operator()() const (this=0x7fa8c6f
#21 0x00007fa8d542e621 in (anonymous namespace)
at /home/alan/
#22 0x00007fa8d542e957 in (anonymous namespace)
at /home/alan/
#23 0x00007fa8d54322cb in std::__
#24 0x00007fa8d54322a0 in std::reference_
at /usr/include/
#25 0x00007fa8d543223a in std::_Bind_
at /usr/include/
#26 0x00007fa8d543216c in std::_Bind_
at /usr/include/
#27 0x00007fa8d54320da in std::thread:
at /usr/include/
#28 0x00007fa8d66d7e30 in ?? () from /usr/lib/
#29 0x00007fa8d61f06aa in start_thread (arg=0x7fa8c6ff
#30 0x00007fa8d5f25eed in clone () at ../sysdeps/