WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
Bug 164983
[GTK] Slow copy and paste between workspaces
https://bugs.webkit.org/show_bug.cgi?id=164983
Summary
[GTK] Slow copy and paste between workspaces
Berend De Schouwer
Reported
2016-11-18 23:39:51 PST
Copy and paste between applications where either the source or the destination application has a WebkitGTK+ widget can be slow. Environment: Gnome Shell on Wayland Version: 2.14.1-2.fc25 (Fedora 25) Copy and Paste will fail when the applications are on separate workspaces. When the applications are on the same workspace copy and paste works fine. Copying *from* a WebkitGTK+ application to a any other application requires the source application to be visible after "paste" is actioned. This requires swapping backwards and forwards between workspaces. 1. Start a WebkitGTK+ application (epiphany) on workspace 1. 2. Start a different application (gedit) on workspace 2. 3. Go to workspace 1, and select text, context-menu -> copy. 4. Go to workspace 2, context-menu -> paste ... nothing happens. 5. Go back to workspace 1 (do nothing) ... text has been pasted 6. Go to workspace 2, confirm pasted text. Various applications were tested. The two WebkitGTK+ applications that were tested were Epiphany and Evolution. Other applications tested include gedit, gnome-calculator, gnome-terminal, firefox, chrome, konsole, gnome-music, gnome-builder, nautilus, gnome-font-viewer, gnome-shell. Epiphany fails both on the WebkitGTK+ widget, and on a normal GTK+ widget. It fails on both web content, and the URL bar. Downstream bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1396009
Attachments
Add attachment
proposed patch, testcase, etc.
Tomas Popela
Comment 1
2016-11-23 08:24:31 PST
In
https://bugzilla.redhat.com/show_bug.cgi?id=1394993
user observes following in the console: Nov 15 11:14:59 shrek.rexursive.com evolution[10057]: Error writing selection data: Error writing to file descriptor: Broken pipe
Carlos Garnacho
Comment 2
2016-11-28 10:38:04 PST
Running epiphany -p with WAYLAND_DEBUG=1, I see this when switching out of its workspace (no need to copy anything to the clipboard, nor opening a page for that matter, just the default "welcome to web" internal page is enough): [2241450,854]
wl_callback@41.done
(31935208) [2241459,721] ->
zxdg_toplevel_v6@34.set_min_size
(405, 47) [2241459,761] ->
zxdg_toplevel_v6@34.set_max_size
(0, 0) [2241459,773] ->
zxdg_surface_v6@33.set_window_geometry
(0, 0, 1080, 692) [2241459,786] ->
wl_compositor@4.create_region
(new id wl_region@41) [2241459,792] ->
wl_region@41.add
(0, 0, 1080, 692) [2241459,801] ->
wl_surface@31.set_opaque_region
(wl_region@41) [2241459,806] ->
wl_region@41.destroy
() [2241459,810] ->
wl_compositor@4.create_region
(new id wl_region@39) [2241459,815] ->
wl_region@39.add
(-10, -10, 1100, 712) [2241459,823] ->
wl_surface@31.set_input_region
(wl_region@39) [2241459,827] ->
wl_region@39.destroy
() [2241460,233] ->
wl_surface@31.frame
(new id wl_callback@42) [2241460,248] ->
wl_surface@31.attach
(wl_buffer@37, 0, 0) [2241460,261] ->
wl_surface@31.damage
(0, 0, 2147483647, 2147483647) [2241460,469] ->
wl_surface@31.commit
() Note the
wl_surface@31.frame
() call, it's creating a callback that is not being processed. When switching back to the workspace again, the callback is dispatched: [2291824,130]
wl_display@1.delete_id
(41) [2291824,182]
wl_display@1.delete_id
(39) [2291824,189]
wl_display@1.delete_id
(42) [2291824,194]
wl_buffer@43.release
() [2291824,201]
wl_callback@42.done
(31985582) [2291832,835] ->
zxdg_toplevel_v6@34.set_min_size
(405, 47) [2291832,870] ->
zxdg_toplevel_v6@34.set_max_size
(0, 0) ... This is a backtrace snapshot of the moment ephy doesn't paste the contents across workspaces: (gdb) t a a bt Thread 15 (Thread 0x7fff757fa700 (LWP 5204)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fff60001370, timeout=<optimized out>, context=0x7fff60000900) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=0x7fff60000900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc8752 in g_main_loop_run (loop=0x7fff60001240) at /home/carlos/Source/gnome/glib/glib/gmain.c:4125 #4 0x00007ffff42c4b70 in WTF::RunLoop::run() () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007ffff42c37e2 in std::_Function_handler<void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #7 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #8 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #9 0x00007fffef213f6f in clone () from /lib64/libc.so.6 ---Type <return> to continue, or q <return> to quit--- Thread 14 (Thread 0x7fff75ffb700 (LWP 5203)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fff5c001370, timeout=<optimized out>, context=0x7fff5c000900) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=0x7fff5c000900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc8752 in g_main_loop_run (loop=0x7fff5c001240) at /home/carlos/Source/gnome/glib/glib/gmain.c:4125 #4 0x00007ffff42c4b70 in WTF::RunLoop::run() () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007ffff42c37e2 in std::_Function_handler<void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #7 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #8 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #9 0x00007fffef213f6f in clone () from /lib64/libc.so.6 ---Type <return> to continue, or q <return> to quit--- Thread 11 (Thread 0x7fff777fe700 (LWP 5198)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fff64001370, timeout=<optimized out>, context=0x7fff64000900) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=0x7fff64000900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc8752 in g_main_loop_run (loop=0x7fff64001240) at /home/carlos/Source/gnome/glib/glib/gmain.c:4125 #4 0x00007ffff42c4b70 in WTF::RunLoop::run() () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007ffff42c37e2 in std::_Function_handler<void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #7 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #8 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #9 0x00007fffef213f6f in clone () from /lib64/libc.so.6 ---Type <return> to continue, or q <return> to quit--- Thread 10 (Thread 0x7fff77fff700 (LWP 5197)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fff6c001370, timeout=<optimized out>, context=0x7fff6c000900) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=0x7fff6c000900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc8752 in g_main_loop_run (loop=0x7fff6c001240) at /home/carlos/Source/gnome/glib/glib/gmain.c:4125 #4 0x00007ffff42c4b70 in WTF::RunLoop::run() () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007ffff42c37e2 in std::_Function_handler<void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #7 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #8 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #9 0x00007fffef213f6f in clone () from /lib64/libc.so.6 ---Type <return> to continue, or q <return> to quit--- Thread 9 (Thread 0x7fff8496a700 (LWP 5196)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fff70001370, timeout=<optimized out>, context=0x7fff70000900) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=0x7fff70000900, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc8752 in g_main_loop_run (loop=0x7fff70001240) at /home/carlos/Source/gnome/glib/glib/gmain.c:4125 #4 0x00007ffff42c4b70 in WTF::RunLoop::run() () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007ffff42c37e2 in std::_Function_handler<void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #7 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #8 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #9 0x00007fffef213f6f in clone () from /lib64/libc.so.6 ---Type <return> to continue, or q <return> to quit--- Thread 8 (Thread 0x7fff857f2700 (LWP 5192)): #0 0x00007fffef20dbe9 in syscall () from /lib64/libc.so.6 #1 0x00007ffff000c32f in g_cond_wait (cond=cond@entry=0x555555fa1b08, mutex=mutex@entry=0x555555fa1b00) at /home/carlos/Source/gnome/glib/glib/gthread-posix.c:1395 #2 0x00007fffeff9dc1b in g_async_queue_pop_intern_unlocked ( queue=queue@entry=0x555555fa1b00, wait=wait@entry=1, end_time=end_time@entry=-1) at /home/carlos/Source/gnome/glib/glib/gasyncqueue.c:419 #3 0x00007fffeff9e057 in g_async_queue_pop (queue=0x555555fa1b00) at /home/carlos/Source/gnome/glib/glib/gasyncqueue.c:453 #4 0x00005555555d04a0 in run_history_service_thread () #5 0x00007fffeffeeed3 in g_thread_proxy (data=0x555555e1bed0) at /home/carlos/Source/gnome/glib/glib/gthread.c:784 #6 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #7 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 7 (Thread 0x7fff85ff3700 (LWP 5191)): #0 0x00007fffef4df809 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007ffff429b763 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, std::chrono:---Type <return> to continue, or q <return> to quit--- :time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >) () from /lib64/libjavascriptcoregtk-4.0.so.18 #2 0x00007ffff428e902 in WTF::sleep(double) () from /lib64/libjavascriptcoregtk-4.0.so.18 #3 0x00007ffff4c5e0ed in std::_Function_handler<void (), WebKit::MemoryPressureMonitor::MemoryPressureMonitor()::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /lib64/libwebkit2gtk-4.0.so.37 #4 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #5 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #7 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 6 (Thread 0x7fffd48fd700 (LWP 5188)): #0 0x00007fffef4df460 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007fffe82b72ec in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib64/libstdc++.so.6 #2 0x00007ffff429b875 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >) () from /lib64/libjavascriptcoregtk-4.0.so.18 ---Type <return> to continue, or q <return> to quit--- #3 0x00007ffff5432af7 in WebCore::IconDatabase::syncThreadMainLoop() () from /lib64/libwebkit2gtk-4.0.so.37 #4 0x00007ffff5433f21 in WebCore::IconDatabase::iconDatabaseSyncThread() () from /lib64/libwebkit2gtk-4.0.so.37 #5 0x00007ffff429e3d5 in WTF::threadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #6 0x00007ffff42c230a in WTF::wtfThreadEntryPoint(void*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #7 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #8 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 5 (Thread 0x7fffd73ca700 (LWP 5187)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fffcc0010c0, timeout=<optimized out>, context=0x55555587c800) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=context@entry=0x55555587c800, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc84dc in g_main_context_iteration (context=0x55555587c800, may_block=1) at /home/carlos/Source/gnome/glib/glib/gmain.c:3990 #4 0x00007fffd85f112e in dconf_gdbus_worker_thread (user_data=0x55555587c800) at /home/carlos/Source/gnome/dconf/gdbus/dconf-gdbus-thread.c:82 #5 0x00007fffeffeeed3 in g_thread_proxy (data=0x555555878540) at /home/carlos/Source/gnome/glib/glib/gthread.c:784 #6 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #7 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 4 (Thread 0x7fffd7bcb700 (LWP 5186)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7fffc80010c0, timeout=<optimized out>, context=0x555555897760) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 #2 g_main_context_iterate (context=0x555555897760, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc8752 in g_main_loop_run (loop=0x55555585da60) at /home/carlos/Source/gnome/glib/glib/gmain.c:4125 #4 0x00007ffff05a9e06 in gdbus_shared_thread_func (user_data=0x555555897730) at /home/carlos/Source/gnome/glib/gio/gdbusprivate.c:247 #5 0x00007fffeffeeed3 in g_thread_proxy (data=0x555555878140) at /home/carlos/Source/gnome/glib/glib/gthread.c:784 #6 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #7 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 3 (Thread 0x7fffd83cc700 (LWP 5185)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffeffc83d6 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7fffd00008e0, timeout=<optimized out>, context=0x555555896fa0) at /home/carlos/Source/gnome/glib/glib/gmain.c:4228 ---Type <return> to continue, or q <return> to quit--- #2 g_main_context_iterate (context=context@entry=0x555555896fa0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3924 #3 0x00007fffeffc84dc in g_main_context_iteration (context=0x555555896fa0, may_block=may_block@entry=1) at /home/carlos/Source/gnome/glib/glib/gmain.c:3990 #4 0x00007fffeffc8521 in glib_worker_main (data=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:5783 #5 0x00007fffeffeeed3 in g_thread_proxy (data=0x5555558780f0) at /home/carlos/Source/gnome/glib/glib/gthread.c:784 #6 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #7 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7fffe0526700 (LWP 5184)): #0 0x00007fffef4df460 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007fffe82b72ec in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib64/libstdc++.so.6 #2 0x00007ffff42ca366 in bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() () from /lib64/libjavascriptcoregtk-4.0.so.18 #3 0x00007ffff42ca499 in bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadEntryPoint(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*) () from /lib64/libjavascriptcoregtk-4.0.so.18 #4 0x00007fffe82bd35f in ?? () from /lib64/libstdc++.so.6 #5 0x00007fffef4d96ca in start_thread () from /lib64/libpthread.so.0 #6 0x00007fffef213f6f in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7ffff7ee6ac0 (LWP 5180)): #0 0x00007fffef20800d in poll () from /lib64/libc.so.6 #1 0x00007fffe858f8e9 in wl_display_poll (display=display@entry=0x555555868a70, events=events@entry=1) at /home/carlos/Source/gnome/wayland/src/wayland-client.c:1593 #2 0x00007fffe8590dac in wl_display_dispatch_queue (display=0x555555868a70, queue=0x5555558c56c0) at /home/carlos/Source/gnome/wayland/src/wayland-client.c:1666 #3 0x00007fffec1183ab in get_back_bo () from /lib64/libEGL.so.1 #4 0x00007fffec118fac in dri2_wl_query_buffer_age () from /lib64/libEGL.so.1 #5 0x00007fffec111a16 in _eglQuerySurface () from /lib64/libEGL.so.1 #6 0x00007fffec10a309 in eglQuerySurface () from /lib64/libEGL.so.1 #7 0x00007ffff1ba3e03 in gdk_wayland_window_invalidate_for_new_frame (window=0x555555874330, update_area=0x555556568f40) at /home/carlos/Source/gnome/gtk+-3/gdk/wayland/gdkglcontext-wayland.c:65 #8 0x00007ffff1b60a5a in gdk_window_process_updates_internal (window=0x555555874330) at /home/carlos/Source/gnome/gtk+-3/gdk/gdkwindow.c:3962 #9 0x00007ffff1b60c94 in gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>) at /home/carlos/Source/gnome/gtk+-3/gdk/gdkwindow.c:4179 #10 0x00007ffff02a0515 in g_closure_invoke (closure=0x555556581a20, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffd400, invocation_hint=invocation_hint@entry=0x7fffffffd3a0) ---Type <return> to continue, or q <return> to quit--- at /home/carlos/Source/gnome/glib/gobject/gclosure.c:804 #11 0x00007ffff02b1d92 in signal_emit_unlocked_R (node=node@entry=0x5555558c5650, detail=detail@entry=0, instance=instance@entry=0x5555558d7270, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd400) at /home/carlos/Source/gnome/glib/gobject/gsignal.c:3635 #12 0x00007ffff02ba8cb in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd598) at /home/carlos/Source/gnome/glib/gobject/gsignal.c:3391 #13 0x00007ffff02bac62 in g_signal_emit (instance=instance@entry=0x5555558d7270, signal_id=<optimized out>, detail=detail@entry=0) at /home/carlos/Source/gnome/glib/gobject/gsignal.c:3447 #14 0x00007ffff1b5843f in _gdk_frame_clock_emit_paint (frame_clock=frame_clock@entry=0x5555558d7270) at /home/carlos/Source/gnome/gtk+-3/gdk/gdkframeclock.c:640 #15 0x00007ffff1b58ad9 in gdk_frame_clock_paint_idle (data=0x5555558d7270) at /home/carlos/Source/gnome/gtk+-3/gdk/gdkframeclockidle.c:430 #16 0x00007ffff1b442a8 in gdk_threads_dispatch (data=data@entry=0x555555a03c60) at /home/carlos/Source/gnome/gtk+-3/gdk/gdk.c:743 #17 0x00007fffeffc8afd in g_timeout_dispatch (source=0x555555a7e390, callback=0x7ffff1b44280 <gdk_threads_dispatch>, user_data=0x555555a03c60) at /home/carlos/Source/gnome/glib/glib/gmain.c:4674 #18 0x00007fffeffc80f2 in g_main_dispatch (context=0x555555868050) at /home/carlos/Source/gnome/glib/glib/gmain.c:3203 #19 g_main_context_dispatch (context=context@entry=0x555555868050) at /home/carlos/Source/gnome/glib/glib/gmain.c:3856 #20 0x00007fffeffc8438 in g_main_context_iterate (context=context@entry=0x555555868050, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /home/carlos/Source/gnome/glib/glib/gmain.c:3929 #21 0x00007fffeffc84dc in g_main_context_iteration (context=context@entry=0x555555868050, may_block=may_block@entry=1) at /home/carlos/Source/gnome/glib/glib/gmain.c:3990 #22 0x00007ffff057f71d in g_application_run (application=0x5555558ed290, argc=<optimized out>, argv=0x7fffffffd998) at /home/carlos/Source/gnome/glib/gio/gapplication.c:2381 #23 0x00005555555867a4 in main () I can see thread 1 stuck on poll() inside wl_display_dispatch_queue(), which according to the documentation has several threading pitfalls, at the moment I can only speculate that something like that is related here. I am also uncertain of where does the wl_surface_frame() call come from, but I think it is triggered from mesa code, if SwapInterval is non-zero. Also, it's worth pointing out that this just doesn't affect c&p, other things like desktop notifications are not dispatched until epiphany is shown.
Carlos Garnacho
Comment 3
2016-11-28 10:42:32 PST
(In reply to
comment #1
)
> In
https://bugzilla.redhat.com/show_bug.cgi?id=1394993
user observes > following in the console: > > Nov 15 11:14:59 shrek.rexursive.com evolution[10057]: Error writing > selection data: Error writing to file descriptor: Broken pipe
This is more or less expected in this situation. If the clipboard source is blocked, the c&p operation destination side will eventually give up (gdk sets a 30s timeout IIRC) and close the pipe, that will be seen as a broken pipe on the webkit app side when it eventually regains control and tries to write the clipboard content.
Michael Catanzaro
Comment 4
2016-11-29 06:37:58 PST
Carlos Garnacho discovered that this is
https://bugzilla.gnome.org/show_bug.cgi?id=769835
-- thanks! -- so there's probably not anything to be changed in WebKit.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug