Mir

[regression] lp:mir r931: Mir crashes immediately when a client connects

Bug #1209053 reported by Daniel van Vugt on 2013-08-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Critical
Daniel van Vugt
mir (Ubuntu)
Undecided
Unassigned

Bug Description

Whatever the cause of this crash is, it landed in lp:mir while I was sleeping (so Tue 6 Aug US/UK)...

saucy:
Program terminated with signal 11, Segmentation fault.
#0 0x00007fa24d904a3b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
(gdb) bt
#0 0x00007fa24d904a3b in ?? ()
   from /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
#1 0x00007fa24d905942 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
#2 0x00007fa24e363706 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#3 0x00007fa24e36454a in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4 0x00007fa24f7dcab6 in ?? () from /usr/lib/x86_64-linux-gnu/libgbm.so.1
#5 0x00007fa24e6f8a1d in mir::graphics::gbm::GBMBufferAllocator::alloc_buffer
    (this=0x2061ba8, buffer_properties=...)
    at /home/dan/bzr/mir/trunk/src/server/graphics/gbm/gbm_buffer_allocator.cpp:131
#6 0x00007fa253c949b2 in mir::compositor::SwapperFactory::create_swapper_new_buffers (this=0x1f9aa98, actual_buffer_properties=...,
    requested_buffer_properties=..., type=mir::compositor::synchronous)
    at /home/dan/bzr/mir/trunk/src/server/compositor/swapper_factory.cpp:102
#7 0x00007fa253c9d6c8 in mir::compositor::SwitchingBundle::SwitchingBundle (
    this=0x7fa22c002208, swapper_factory=..., property_request=...)
    at /home/dan/bzr/mir/trunk/src/server/compositor/switching_bundle.cpp:34
#8 0x00007fa253c8cbb8 in __gnu_cxx::new_allocator<mir::compositor::SwitchingBundle>::construct<mir::compositor::SwitchingBundle<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&> > (
    this=0x7fa2475e46cf, __p=0x7fa22c002208)
    at /usr/include/c++/4.8/ext/new_allocator.h:120
#9 0x00007fa253c8cb14 in std::allocator_traits<std::allocator<mir::compositor::SwitchingBundle> >::_S_construct<mir::compositor::SwitchingBundle<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&> >(std::allocator<mir::compositor::SwitchingBundle>&, std::allocator_traits<std::allocator<mir::compositor::SwitchingBundle> >::__construct_helper*, (mir::compositor::SwitchingBundle<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&>&&)...) (__a=...,
    __p=0x7fa22c002208) at /usr/include/c++/4.8/bits/alloc_traits.h:254
#10 0x00007fa253c8ca4c in std::allocator_traits<std::allocator<mir::compositor::SwitchingBundle> >::construct<mir::compositor::SwitchingBundle<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&> >(std::allocator<mir::compositor::SwitchingBundle>&, mir::compositor::SwitchingBundle<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&>*, (mir::compositor::SwitchingBundle<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&>&&)...) (__a=..., __p=0x7fa22c002208)
    at /usr/include/c++/4.8/bits/alloc_traits.h:393
#11 0x00007fa253c8c82f in std::_Sp_counted_ptr_inplace<mir::compositor::SwitchingBundle, std::allocator<mir::compositor::SwitchingBundle>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&> (this=0x7fa22c0021f0,
    __a=...) at /usr/include/c++/4.8/bits/shared_ptr_base.h:399
#12 0x00007fa253c8c60f in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<mir::compositor::SwitchingBundle, std::allocator<mir::compositor::SwitchingBundle>, (__gnu_cxx::_Lock_policy)2> >::construct<std::_Sp_counted_ptr_inplace<mir::compositor::SwitchingBundle, std::allocator<mir::compositor::SwitchingBundle>, (__gnu_cxx::_Lock_policy)2><std::allocator<mir::compositor::SwitchingBundle> const, std::shared_ptr<mir::compositor::BufferAllocationStrategy>&, mir::graphics::BufferProperties const&> > (this=0x7fa2475e47e7, __p=0x7fa22c0021f0)
    at /usr/include/c++/4.8/ext/new_allocator.h:120

raring:
Program terminated with signal 8, Arithmetic exception.
#0 0x00007fdf12e983ae in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
(gdb) bt
#0 0x00007fdf12e983ae in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#1 0x00007fdf12e9fc27 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#2 0x00007fdf12e9fdcc in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#3 0x00007fdf129ae66b in _mesa_EGLImageTargetTexture2DOES ()
   from /usr/lib/x86_64-linux-gnu/libdricore9.2.0-devel.so.1
#4 0x00007fdf1322abb2 in (anonymous namespace)::EGLImageBufferTextureBinder::bind_to_texture (this=0x7fdef0002410)
    at /home/dan/bzr/mir/trunk/src/server/graphics/gbm/gbm_buffer_allocator.cpp:65
#5 0x00007fdf1322ea97 in mir::graphics::gbm::GBMBuffer::bind_to_texture (
    this=0x7fdef0002450)
    at /home/dan/bzr/mir/trunk/src/server/graphics/gbm/gbm_buffer.cpp:121
#6 0x00007fdf1879ba2d in mir::compositor::TemporaryBuffer::bind_to_texture (
    this=0x7fdf0002a7d8)
    at /home/dan/bzr/mir/trunk/src/server/compositor/temporary_buffers.cpp:80
#7 0x00007fdf187a8349 in mir::compositor::GLRenderer::render(std::function<void (std::shared_ptr<void> const&)>, mir::compositor::CompositingCriteria const&, mir::surfaces::BufferStream&) (this=0x7fdf00000e00, save_resource=..., criteria=
    ..., stream=...)
    at /home/dan/bzr/mir/trunk/src/server/compositor/gl_renderer.cpp:269
#8 0x00007fdf187a75f4 in mir::compositor::RenderingOperator::operator() (
    this=0x7fdf07128c40, info=..., stream=...)
    at /home/dan/bzr/mir/trunk/src/server/compositor/rendering_operator.cpp:38
#9 0x00007fdf187fb335 in mir::surfaces::SurfaceStack::for_each_if (
    this=0x26f3498, filter=..., op=...)
    at /home/dan/bzr/mir/trunk/src/server/surfaces/surface_stack.cpp:64
#10 0x00007fdf1879a414 in mir::compositor::DefaultDisplayBufferCompositor::compose(mir::geometry::Rectangle const&, std::function<void (std::shared_ptr<void> const&)>) (this=0x7fdf0000b880, view_area=..., save_resource=...)
    at /home/dan/bzr/mir/trunk/src/server/compositor/default_display_buffer_compositor.cpp:68
#11 0x00007fdf187990cd in mir::compositor::BasicDisplayBufferCompositor::composite (this=0x7fdf0000b880)
    at /home/dan/bzr/mir/trunk/src/server/compositor/basic_display_buffer_compositor.cpp:46
#12 0x00007fdf187aa9e7 in mir::compositor::CompositingFunctor::operator() (
    this=0x29b5e80)
    at /home/dan/bzr/mir/trunk/src/server/compositor/multi_threaded_compositor.cpp:94
#13 0x00007fdf187adc4b in std::__invoke<mir::compositor::CompositingFunctor> (
    __f=...) at /usr/include/c++/4.8/functional:234
#14 0x00007fdf187adc20 in std::reference_wrapper<mir::compositor::CompositingFunctor>::operator()<>() const (this=0x290bdb0)
    at /usr/include/c++/4.8/functional:467
#15 0x00007fdf187adbba in std::_Bind_simple<std::reference_wrapper<mir::compositor::CompositingFunctor> ()>::_M_invoke<>(std::_Index_tuple<>) (this=0x290bdb0)
    at /usr/include/c++/4.8/functional:1732
#16 0x00007fdf187adb07 in std::_Bind_simple<std::reference_wrapper<mir::compositor::CompositingFunctor> ()>::operator()() (this=0x290bdb0)
    at /usr/include/c++/4.8/functional:1720
#17 0x00007fdf187adaa0 in std::thread::_Impl<std::_Bind_simple<std::reference_wrapper<mir::compositor::CompositingFunctor> ()> >::_M_run() (this=0x290bd98)
    at /usr/include/c++/4.8/thread:115
#18 0x00007fdf17a8cc80 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#19 0x00007fdf17ce6f8e in start_thread (arg=0x7fdf07129700)
    at pthread_create.c:311
#20 0x00007fdf174f6e1d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Related branches

description: updated
Daniel van Vugt (vanvugt) wrote :

Bisected. The regression is caused by:

revno: 931 [merge]
author: Kevin DuBois <email address hidden>
committer: Tarmac
branch nick: trunk
timestamp: Tue 2013-08-06 17:50:32 +0000
message:
  Add support for sending display change events to the client to the api/protocol.

  Approved by PS Jenkins bot, Chris Halse Rogers, Alexandros Frantzis.

summary: - [regression] Mir crashes immediately when a client connects
+ [regression] lp:mir r931: Mir crashes immediately when a client connects
Daniel van Vugt (vanvugt) wrote :

Steps to reproduce:

1. Start mir_demo_server or mir_demo_server_shell
2. Start mir_demo_client_eglplasma (or others)

Daniel van Vugt (vanvugt) wrote :

I wonder if this is related to bug 1124948. The stacks are similar on raring at least. And the offending change does touch pixel formats a lot.

Changed in mir:
assignee: nobody → Daniel van Vugt (vanvugt)
status: New → In Progress
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.0.9

Changed in mir:
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.0.8+13.10.20130807.3-0ubuntu1

---------------
mir (0.0.8+13.10.20130807.3-0ubuntu1) saucy; urgency=low

  [ Robert Ancell ]
  * platform: Install and use mirplatform headers. (LP: #1209104)

  [ Daniel van Vugt ]
  * Revert r931. It is causing instant and widespread crashes (LP:
    #1209053). (LP: #1209053)

  [ Alan Griffiths ]
  * platform: remove spurious ${MIR_COMMON_PLATFORM_LIBRARIES}.
  * platform: Install and use mirplatform headers. (LP: #1209104)

  [ Christopher James Halse Rogers ]
  * Fix multihead API usage in EGL example clients.

  [ Ubuntu daily release ]
  * Automatic snapshot from revision 937
 -- Ubuntu daily release <email address hidden> Wed, 07 Aug 2013 16:24:16 +0000

Changed in mir (Ubuntu):
status: New → Fix Released
Changed in mir:
milestone: none → 0.0.9
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers