2017-04-06 09:12:33 |
Daniel van Vugt |
description |
Xmir freezes in mir_buffer_stream_get_graphics_region() from xmir_input_set_cursor()
Seems to happen a lot when testing Firefox and Chrome when entering/leaving the address bar...
(gdb) bt
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007fe9624f4c5c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x00007fe96556c6b2 in ?? ()
from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
#3 0x00007fe9655709ed in ?? ()
from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
#4 0x00007fe965570517 in ?? ()
from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
#5 0x00007fe965574f28 in mir_buffer_stream_get_graphics_region ()
from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
#6 0x0000563e52d4290e in xmir_input_set_cursor (cursor=0x563e5432fce0,
xmir_input=<optimised out>, xmir_input=<optimised out>)
at xmir-cursor.c:108
#7 0x0000563e52d91eab in miPointerUpdateSprite (pDev=0x563e540e3a90)
at mipointer.c:468
#8 0x0000563e52d920fa in miPointerDisplayCursor (pDev=0x563e540e3a90,
pScreen=0x563e537385b0, pCursor=0x563e5432fce0) at mipointer.c:206
#9 0x0000563e52d7ebf1 in CursorDisplayCursor (pDev=0x563e540e3a90,
pScreen=0x563e537385b0, pCursor=0x563e5432fce0) at cursor.c:150
#10 0x0000563e52e074e0 in AnimCurDisplayCursor (pDev=0x563e540e3a90,
pScreen=0x563e537385b0, pCursor=0x563e5432fce0) at animcur.c:220
#11 0x0000563e52e78cc8 in ChangeToCursor (pDev=0x563e540e3a90,
cursor=0x563e5432fce0) at events.c:937
#12 0x0000563e52e7cbba in CheckMotion (ev=ev@entry=0x0, pDev=0x563e540e3a90)
at events.c:3090
#13 0x0000563e52d432b1 in pointer_ensure_focus (
xmir_window=xmir_window@entry=0x563e543956d0, dev=0x563e541119c0,
sx=<optimised out>, sy=<optimised out>, xmir_input=<optimised out>)
at xmir-input.c:228
#14 0x0000563e52d43345 in pointer_handle_motion (
xmir_input=xmir_input@entry=0x563e54111860,
xmir_window=xmir_window@entry=0x563e543956d0, pev=pev@entry=0x7fe950003ba0)
at xmir-input.c:243
#15 0x0000563e52d438a0 in xmir_window_handle_input_event (
xmir_input=xmir_input@entry=0x563e54111860,
xmir_window=xmir_window@entry=0x563e543956d0, ev=<optimised out>)
at xmir-input.c:491
#16 0x0000563e52d43b78 in xmir_handle_surface_event_in_main_thread (
xmir_screen=<optimised out>, xmir_window=0x563e543956d0,
arg=0x7fe950003ba0) at xmir-input.c:544
#17 0x0000563e52d453a9 in xmir_process_from_eventloop_except (w=0x0)
at xmir-thread-proxy.c:102
#18 0x0000563e52eaa131 in ospoll_wait (ospoll=0x563e5372d790,
timeout=<optimised out>) at ospoll.c:412
#19 0x0000563e52ea3a7c in WaitForSomething (are_ready=<optimised out>)
at WaitFor.c:226
#20 0x0000563e52e6fc0a in Dispatch () at dispatch.c:422
#21 0x0000563e52e73e58 in dix_main (argc=6, argv=0x7ffec1136a68,
envp=<optimised out>) at main.c:287
#22 0x00007fe9637d03f1 in __libc_start_main (main=0x563e52d3df70 <main>,
argc=6, argv=0x7ffec1136a68, init=<optimised out>, fini=<optimised out>,
rtld_fini=<optimised out>, stack_end=0x7ffec1136a58)
at ../csu/libc-start.c:291
#23 0x0000563e52d3dfaa in _start () |
Xmir freezes in mir_buffer_stream_get_graphics_region() from xmir_input_set_cursor()
Seems to happen a lot when testing Firefox and Chrome when entering/leaving the address bar...
(gdb) bt
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007f5ea91e3c5c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x00007f5eac25b6b2 in std::condition_variable::wait<mir::client::PromiseStateBase<std::shared_ptr<mir::client::MirBuffer> >::ReadLock::ReadLock(mir::client::PromiseStateBase<std::shared_ptr<mir::client::MirBuffer> >&)::{lambda()#1}>(std::unique_lock<std::mutex>&, mir::client::PromiseStateBase<std::shared_ptr<mir::client::MirBuffer> >::ReadLock::ReadLock(mir::client::PromiseStateBase<std::shared_ptr<mir::client::MirBuffer> >&)::{lambda()#1}) ()
at /usr/include/c++/6/condition_variable:99
#3 __base_ctor (parent=..., this=0x7fff74877420)
at ./src/client/no_tls_future-inl.h:136
#4 mir::client::PromiseStateBase<std::shared_ptr<mir::client::MirBuffer> >::ensure_read_context() () at ./src/client/no_tls_future-inl.h:152
#5 get_value (this=0x55de6688f830) at ./src/client/no_tls_future-inl.h:223
#6 get (this=0x7f5e9c008160) at ./src/client/no_tls_future-inl.h:354
#7 mir::client::BufferDepository::advance_current_buffer(std::unique_lock<std::mutex>&) (this=this@entry=0x7f5e9c008160, lk=...)
at ./src/client/buffer_stream.cpp:166
#8 0x00007f5eac25f9ed in current_buffer_id (this=<optimised out>)
at ./src/client/buffer_stream.cpp:183
#9 get_current_buffer (this=0x7f5e9c007f40)
at ./src/client/buffer_stream.cpp:400
#10 0x00007f5eac25f517 in secure_for_cpu_write (this=0x7f5e9c007f40)
at ./src/client/buffer_stream.cpp:419
#11 0x00007f5eac263f28 in mir_buffer_stream_get_graphics_region (
buffer_stream=buffer_stream@entry=0x7f5e9c007f48,
region_out=region_out@entry=0x7fff748775d0)
at ./src/client/mir_buffer_stream_api.cpp:149
#12 0x000055de647da90e in xmir_input_set_cursor (cursor=0x55de6687ff60,
xmir_input=<optimised out>, xmir_input=<optimised out>)
at xmir-cursor.c:108
#13 0x000055de64829eab in miPointerUpdateSprite (pDev=0x55de66621c10)
at mipointer.c:468
#14 0x000055de6482a0fa in miPointerDisplayCursor (pDev=0x55de66621c10,
pScreen=0x55de65c775b0, pCursor=0x55de6687ff60) at mipointer.c:206
#15 0x000055de64816bf1 in CursorDisplayCursor (pDev=0x55de66621c10,
pScreen=0x55de65c775b0, pCursor=0x55de6687ff60) at cursor.c:150
#16 0x000055de6489f4e0 in AnimCurDisplayCursor (pDev=0x55de66621c10,
pScreen=0x55de65c775b0, pCursor=0x55de6687ff60) at animcur.c:220
#17 0x000055de64910cc8 in ChangeToCursor (pDev=0x55de66621c10,
cursor=0x55de6687ff60) at events.c:937
#18 0x000055de64912107 in WindowHasNewCursor (pWin=pWin@entry=0x55de66840be0)
at events.c:3369
#19 0x000055de64939740 in ChangeWindowAttributes (pWin=0x55de66840be0,
vmask=<optimised out>, vlist=vlist@entry=0x55de6690e17c,
client=client@entry=0x55de667e37e0) at window.c:1561
#20 0x000055de64901bed in ProcChangeWindowAttributes (client=0x55de667e37e0)
at dispatch.c:726
#21 0x000055de64907ed5 in Dispatch () at dispatch.c:479
#22 0x000055de6490be58 in dix_main (argc=6, argv=0x7fff74877a58,
envp=<optimised out>) at main.c:287
#23 0x00007f5eaa4bf3f1 in __libc_start_main (main=0x55de647d5f70 <main>,
argc=6, argv=0x7fff74877a58, init=<optimised out>, fini=<optimised out>,
rtld_fini=<optimised out>, stack_end=0x7fff74877a48)
at ../csu/libc-start.c:291
#24 0x000055de647d5faa in _start () |
|