** Description changed:
confirmed to happen in latest image with usc0.3 and previous images with
usc0.2
steps
1) flash ubuntu-touch/rc-proposed/ubuntu-pd
2) connect bt mouse and see unity8 go into windowed mode
3) move mouse about screen while at the same time connect slimport hdmi cable
ui will then freeze but seems content, let it sit for 30 min no reboot or
restart, no crash files, power button does not do anything.
It's also possible to have the slimport already connected - move mouse around
disconnect, the ui will freeze altho in this case unity8 always seems to
restart.
There are no usc crash files.
+
+ The problem is a dead lock on the Display/DisplaySyncGroup mutexes
+ between CompositingFunctor->SystemWindowManager->GraphicsDisplayLayout
+ and DisplayInputRegion.
+
+ Thread 6 (Thread 0xb0dff3d0 (LWP 1530)):
+ #0 0xb6cd5d44 in __libc_do_syscall () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #1 0xb6cd395c in __lll_lock_wait () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #2 0xb6ccf19e in pthread_mutex_lock () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #3 0xb6426f02 in __gthread_mutex_lock (__mutex=0x1b34f14)
+ at /usr/include/arm-linux-gnueabihf/c++/4.9/bits/gthr-default.h:748
+ No locals.
+ #4 lock (this=0x1b34f14) at /usr/include/c++/4.9/mutex:135
+ No locals.
+ #5 lock_guard (__m=..., this=0xb0dfeaf0) at /usr/include/c++/4.9/mutex:377
+ No locals.
+ #6 mir::graphics::android::Display::configuration (this=0x1b34ef8)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/platforms/android/server/display.cpp:231
+ lock = {_M_device = @0x1b34f14}
+ #7 0xb6e656ca in mir::shell::GraphicsDisplayLayout::place_in_output
(this=<optimized out>, id=...,
+ rect=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/shell/graphics_display_layout.cpp:72
+ config = std::unique_ptr<mir::graphics::DisplayConfiguration>
containing 0xb6eb69c8
+ placed = false
+ #8 0xb6e6a888 in mir::shell::SystemCompositorWindowManager::add_display
(this=0x1d07b24)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/shell/system_compositor_window_manager.cpp:1
output_id = <optimized out>
+ rect = {top_left = {x = {value = 0}, y = {value = 0}}, size = {width
= {value = 768}, height = {
+ value = 1280}}}
+ surface = std::shared_ptr (count 3, weak 4) 0x0
+ __for_range = <optimized out>
+ lock = {_M_device = @0x1d07b3c}
+ #9 0xb6e1ab32 in operator() (buffer=..., __closure=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/compositor/multi_threaded_compositor.cpp:96
+ No locals.
+ #10 std::_Function_handler<void (mir::graphics::DisplayBuffer&),
mir::compositor::CompositingFunctor::operator()()::{lambda()#2}::operator()()
const::{lambda(mir::graphics::DisplayBuffer&)#1}>::_M_invoke(std::_Any_data
const&, mir::graphics::DisplayBuffer&) (__functor=..., __args#0=...)
+ at /usr/include/c++/4.9/functional:2039
+ No locals.
+ #11 0xb64288a8 in operator() (__args#0=..., this=0xb0dfeca0) at
/usr/include/c++/4.9/functional:2439
+ No locals.
+ #12
mir::graphics::android::DisplayGroup::for_each_display_buffer(std::function<void
(mir::graphics::DisplayBuffer&)> const&) (this=0x1b35024, f=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/platforms/android/server/display_group.cpp:51
+ __for_range = std::map with 1 elements = {
+ [mir::graphics::android::DisplayName::primary] =
std::unique_ptr<mir::graphics::android::ConfigurableDisplayBuffer> containing
0x1c0db40}
+ lk = {_M_device = 0x1b35028, _M_owns = true}
+ #13 0xb6e1b896 in operator() (__closure=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/compositor/multi_threaded_compositor.cpp:96
+ No locals.
+ #14 PairedCalls (deleter=<optimized out>, creator=<optimized out>,
this=0xb0dfec84)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/include/common/mir/raii.h:33
+ No locals.
+ #15
paired_calls<mir::compositor::CompositingFunctor::operator()()::<lambda()>,
mir::compositor::CompositingFunctor::operator()()::<lambda()> >
(deleter=<optimized out>, creator=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/include/common/mir/raii.h:66
+ No locals.
+ #16 mir::compositor::CompositingFunctor::operator() (this=0x1d112d8)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/compositor/multi_threaded_compositor.cpp:98
+ disp_listener = std::shared_ptr (count 5, weak 2) 0x1d07aac
+ display_registration = {deleter = {__this = 0x1d112d8,
+ __disp_listener = std::shared_ptr (count 5, weak 2) 0x1d07aac},
owner = true}
+ compositor_registration = <optimized out>
+ compositors = std::vector of length 1, capacity 1 = {std::tuple
containing = {[1] = 0x1c0db40,
+ [2] = std::unique_ptr<mir::compositor::DisplayBufferCompositor>
containing 0xb0499848}}
+ lock = {_M_device = 0xb0402c44, _M_owns = true}
+ #17 0xb6e8aa58 in operator() (this=0xb0dfed84) at
/usr/include/c++/4.9/functional:2439
+ No locals.
+ #18 execute (this=0xb0dfed84)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/thread/basic_thread_pool.cpp:40
+ No locals.
+ #19 operator() (this=0x1d1ce88)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/thread/basic_thread_pool.cpp:91
+ task = {
+ task = {<std::_Maybe_unary_or_binary_function<void>> = {<No data
fields>}, <std::_Function_base> = {static _M_max_size = 8, static _M_max_align
= 4, _M_functor = {_M_unused = {_M_object = 0x1d112d8,
+ _M_const_object = 0x1d112d8, _M_function_pointer =
0x1d112d8,38
+ _M_member_pointer = (void
(std::_Undefined_class::*)(std::_Undefined_class * const)) 0x1d112d8},
_M_pod_data = "\330\022\321\001\000\000\000"},
+ _M_manager = 0xb6e1ab91
<std::_Function_base::_Ref_manager<mir::compositor::CompositingFunctor>::_M_manager(std::_Any_data&,
std::_Any_data const&, std::_Manager_operation)>},
+ _M_invoker = 0xb6e1bf3d <std::_Function_handler<void (),
std::reference_wrapper<mir::compositor::CompositingFunctor>
>::_M_invoke(std::_Any_data const&)>}, promise = {
+ _M_future = std::shared_ptr (count 2, weak 0) 0x1d1c7f0,
+ _M_storage = std::unique_ptr<std::__future_base::_Result<void>>
containing 0x1d0ae90},
+ task_exception = {_M_exception_object = 0x0}}
+ lock = {_M_device = 0x1d1ceb4, _M_owns = false}
+ #20 __invoke<(anonymous namespace)::Worker> (__f=...) at
/usr/include/c++/4.9/functional:202
+ No locals.
+ #21 operator()<> (this=<optimized out>) at /usr/include/c++/4.9/functional:435
+ No locals.
+ #22 _M_invoke<> (this=<optimized out>) at /usr/include/c++/4.9/functional:1700
+ No locals.
+ #23 operator() (this=<optimized out>) at /usr/include/c++/4.9/functional:1688
+ No locals.
+ #24 std::thread::_Impl<std::_Bind_simple<std::reference_wrapper<(anonymous
namespace)::Worker>()> >::_M_run(void) (this=<optimized out>) at
/usr/include/c++/4.9/thread:115
+ No locals.
+ #25 0xb6c332a0 in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
+ No symbol table info available.
+ #26 0xb6ccd490 in start_thread () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #27 0xb6b27c4c in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
+ No symbol table info available.
+ Backtrace stopped: previous frame identical to this frame (corrupt stack?)
+
+ #0 0xb6cd5d44 in __libc_do_syscall () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #1 0xb6cd395c in __lll_lock_wait () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #2 0xb6ccf19e in pthread_mutex_lock () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #3 0xb642887e in __gthread_mutex_lock (__mutex=0x1b35028)
+ at /usr/include/arm-linux-gnueabihf/c++/4.9/bits/gthr-default.h:748
+ No locals.
+ #4 lock (this=0x1b35028) at /usr/include/c++/4.9/mutex:135
+ No locals.
+ #5 lock (this=0xafbfe9a4) at /usr/include/c++/4.9/mutex:474
+ No locals.
+ #6 unique_lock (__m=..., this=0xafbfe9a4) at /usr/include/c++/4.9/mutex:406
+ No locals.
+ #7
mir::graphics::android::DisplayGroup::for_each_display_buffer(std::function<void
(mir::graphics::DisplayBuffer&)> const&) (this=0x1b35024, f=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/platforms/android/server/display_group.cpp:48
+ lk = {_M_device = 0x1b35028, _M_owns = false}
+ #8 0xb6de02c0 in operator() (group=..., __closure=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/input/display_input_region.cpp:70
+ No locals.
+ #9 std::_Function_handler<void(mir::graphics::DisplaySyncGroup&),
mir::input::DisplayInputRegion::confine(mir::geometry::Point&)::<lambda(mir::graphics::DisplaySyncGroup&)>
>::_M_invoke(const std::_Any_data &, mir::graphics::DisplaySyncGroup &)
(__functor=..., __args#0=...)
+ at /usr/include/c++/4.9/functional:2039
+ No locals.
+ #10 0xb64258ee in operator() (__args#0=..., this=0xafbfea10) at
/usr/include/c++/4.9/functional:2439
+ No locals.
+ #11
mir::graphics::android::Display::for_each_display_sync_group(std::function<void
(mir::graphics::DisplaySyncGroup&)> const&) (this=0x1b34ef8, f=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/platforms/android/server/display.cpp:226
+ lock = {_M_device = @0x1b34f14}
+ #12 0xb6de04ae in mir::input::DisplayInputRegion::confine (this=<optimized
out>, point=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/input/display_input_region.cpp:71
+ rectangles = {rectangles = std::vector of length 0, capacity 0,
bounding_rectangle_ = {
+ top_left = {x = {value = 0}, y = {value = 0}}, size = {width =
{value = 0}, height = {
+ value = 0}}}}
+ #13 0xb6de37e0 in mir::input::Seat::update_cursor (this=this@entry=0x1d09078,
+ event=event@entry=0xaf217308)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/input/seat.cpp:193
+ movement = <optimized out>
+ #14 0xb6de3d0c in mir::input::Seat::update_seat_properties (this=0x1d09078,
+ event=event@entry=0xaf217308)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/input/seat.cpp:106
+ pointer = 0xaf217308
+ id = 5
+ stored_data = {<std::__detail::_Node_iterator_base<std::pair<long
long const, mir::input::Seat::DeviceData>, false>> = {_M_cur = 0xaf213908}, <No
data fields>}
+ __PRETTY_FUNCTION__ = "void
mir::input::Seat::update_seat_properties(const MirInputEvent*)
+ #15 0xb6ddb2c0 in
mir::input::DefaultInputDeviceHub::RegisteredDevice::handle_input
(this=0xaf2138b8,
+ event=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/server/input/default_input_device_hub.cpp:171
+ type = <optimized out>
+ __PRETTY_FUNCTION__ = "virtual void
mir::input::DefaultInputDeviceHub::RegisteredDevice::handle_input(MirEvent&)"
+ input_event = 0xaf217308
+ #16 0xb1fe3c90 in mir::input::evdev::LibInputDevice::process_event
(this=0xaf213770,
+ event=event@entry=0xaf20c5c0)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/platforms/evdev/libinput_device.cpp:93
+ No locals.
+ #17 0xb1fe6fbe in mir::input::evdev::Platform::process_input_events
(this=0x1d0bc28)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/platforms/evdev/platform.cpp:123
+ ev = std::unique_ptr<libinput_event> containing 0xaf20c5c0
+ dev = <optimized out>
+ status = <optimized out>
+ __PRETTY_FUNCTION__ = "void
mir::input::evdev::Platform::process_input_events()"
+ next_event = {lilib = 0x1d0bad8}
+ #18 0xb6d5c714 in operator() (this=<optimized out>) at
/usr/include/c++/4.9/functional:2439
+ No locals.
+ #19 mir::dispatch::ReadableFd::dispatch (this=<optimized out>,
events=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/common/dispatch/readable_fd.cpp:38
+ events = <optimized out>
+ this = <optimized out>
+ #20 0xb6d5a6cc in mir::dispatch::MultiplexingDispatchable::dispatch
(this=<optimized out>,
+ events=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/common/dispatch/multiplexing_dispatchable.cpp:210
+ source = std::shared_ptr (count 3, weak 0) 0x1d0b35c
+ rearm_source = true
+ event = {events = 1, data = {ptr = 0xaf2004d8, fd = -1356856104, u32
= 2938111192,
+ u64 = 2938111192}}
+ __PRETTY_FUNCTION__ = "virtual bool
mir::dispatch::MultiplexingDispatchable::dispatch(mir::dispatch::FdEvents)"
+ #21 0xb6d5a6cc in mir::dispatch::MultiplexingDispatchable::dispatch
(this=<optimized out>,
+ events=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/common/dispatch/multiplexing_dispatchable.cpp:210
+ source = std::shared_ptr (count 3, weak 0) 0x1d0b09c
+ rearm_source = true
+ event = {events = 1, data = {ptr = 0xaf20c0a8, fd = -1356808024, u32
= 2938159272,
+ u64 = 2938159272}}
+ __PRETTY_FUNCTION__ = "virtual bool
mir::dispatch::MultiplexingDispatchable::dispatch(mir::dispatch::FdEvents)"
+ #22 0xb6d5a6cc in mir::dispatch::MultiplexingDispatchable::dispatch
(this=<optimized out>,
+ events=<optimized out>)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/common/dispatch/multiplexing_dispatchable.cpp:210
+ source = std::shared_ptr (count 10, weak 1) 0x1d08914
+ rearm_source = false
+ event = {events = 1, data = {ptr = 0x1d0fd90, fd = 30473616, u32 =
30473616, u64 = 30473616}}
+ __PRETTY_FUNCTION__ = "virtual bool
mir::dispatch::MultiplexingDispatchable::dispatch(mir::dispatch::FdEvents)"
+ #23 0xb6d5ce5a in (anonymous namespace)::dispatch_loop(const std::string &,
std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>,
std::shared_ptr<mir::dispatch::Dispatchable>, const std::function<void()> &)
(name=..., thread_register=...,
+ dispatcher=std::shared_ptr (count 2, weak 0) 0x1d0fd24,
exception_handler=...)
+ at
/build/mir-ua35pY/mir-0.19.0+15.04.20160126.1/src/common/dispatch/threaded_dispatcher.cpp:211
+ waiter = {fd = 61, events = 1, revents = 1}
+ running = true
+ thread_registrar = {deleter = {
+ __thread_register = std::shared_ptr (count 4, weak 0) 0x1d0fc70},
owner = true}
+ __PRETTY_FUNCTION__ = "void {anonymous}::dispatch_loop(const string&,
std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>,
std::shared_ptr<mir::dispatch::Dispatchable>, const std::function<void("...
+ #24 0xb6d5ddf2 in _M_invoke<0u, 1u, 2u, 3u> (this=<optimized out>)
+ at /usr/include/c++/4.9/functional:1700
+ No locals.
+ #25 operator() (this=<optimized out>) at /usr/include/c++/4.9/functional:1688
+ No locals.
+ #26 std::thread::_Impl<std::_Bind_simple<void (*(std::string,
std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>,
std::shared_ptr<mir::dispatch::MultiplexingDispatchable>, std::function<void
()>))(std::string const&,
std::shared_ptr<mir::dispatch::ThreadedDispatcher::ThreadShutdownRequestHandler>,
std::shared_ptr<mir::dispatch::Dispatchable>, std::function<void ()> const&)>
>::_M_run()
+ (this=<optimized out>) at /usr/include/c++/4.9/thread:115
+ No locals.
+ #27 0xb6c332a0 in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
+ No symbol table info available.
+ #28 0xb6ccd490 in start_thread () from
/lib/arm-linux-gnueabihf/libpthread.so.0
+ No symbol table info available.
+ #29 0xb6b27c4c in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
+ No symbol table info available.
+ Backtrace stopped: previous frame identical to this frame (corrupt stack?)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1538632
Title:
ui freezes when simultaneously moving mouse & plug/unplug hdmi
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-pocket-desktop/+bug/1538632/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs