touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #133920
[Bug 1538632] Re: ui freezes when simultaneously moving mouse & plug/unplug hdmi
Fix committed into lp:mir at revision None, scheduled for release in
mir, milestone 0.20.0
** Changed in: mir
Status: In Progress => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to mir in Ubuntu.
https://bugs.launchpad.net/bugs/1538632
Title:
ui freezes when simultaneously moving mouse & plug/unplug hdmi
Status in canonical-pocket-desktop:
In Progress
Status in Mir:
Fix Committed
Status in mir package in Ubuntu:
New
Bug description:
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?)
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-pocket-desktop/+bug/1538632/+subscriptions
References