Crash on cursor capture while screencasting
Yesterday while streaming Mutter kept crashing when trying to right click an image in Firefox. Here's the backtrace:
#0 __memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:499
Downloading 0.03 MB source file /build/glibc/src/glibc/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
499 VMOVA %VEC(4), (VEC_SIZE * 3)(%rdi)
[Current thread is 1 (Thread 0x7f7ca0293b40 (LWP 306094))]
(gdb) bt
#0 __memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:499
#1 0x00007f7c8e6f99a2 in memcpy () at /usr/include/bits/string_fortified.h:29
#2 readpixels_memcpy () at ../mesa-22.3.0/src/mesa/main/readpix.c:259
#3 _mesa_readpixels () at ../mesa-22.3.0/src/mesa/main/readpix.c:885
#4 0x00007f7c8e7426c7 in st_ReadPixels () at ../mesa-22.3.0/src/mesa/state_tracker/st_cb_readpixels.c:565
#5 0x00007f7c8e6fa33a in read_pixels () at ../mesa-22.3.0/src/mesa/main/readpix.c:1178
#6 _mesa_ReadnPixelsARB () at ../mesa-22.3.0/src/mesa/main/readpix.c:1195
#7 0x00007f7c8e6fa5c6 in _mesa_ReadPixels () at ../mesa-22.3.0/src/mesa/main/readpix.c:1210
#8 0x00007f7ca495db16 in cogl_gl_framebuffer_read_pixels_into_bitmap (driver=0x565118a50010, x=0, y=0, source=COGL_READ_PIXELS_COLOR_BUFFER, bitmap=0x56511996b870, error=0x0)
at ../cogl/cogl/driver/gl/cogl-framebuffer-gl.c:592
#9 0x00007f7ca49aaea0 in cogl_framebuffer_driver_read_pixels_into_bitmap (driver=0x565118a50010, x=0, y=0, source=COGL_READ_PIXELS_COLOR_BUFFER, bitmap=0x56511996b870, error=0x0)
at ../cogl/cogl/cogl-framebuffer-driver.c:159
#10 0x00007f7ca49ad850 in _cogl_framebuffer_read_pixels_into_bitmap (framebuffer=0x565119ed82e0, x=0, y=0, source=COGL_READ_PIXELS_COLOR_BUFFER, bitmap=0x56511996b870, error=0x0)
at ../cogl/cogl/cogl-framebuffer.c:1520
#11 0x00007f7ca49ad993 in cogl_framebuffer_read_pixels
(framebuffer=0x565119ed82e0, x=0, y=0, width=576, height=576, format=COGL_PIXEL_FORMAT_RGBA_8888_PRE, pixels=0x7f7c26588108 "") at ../cogl/cogl/cogl-framebuffer.c:1572
#12 0x00007f7ca4f9e0de in draw_cursor_sprite_via_offscreen
(src=0x565119e44280, cursor_texture=0x565117a934a0, bitmap_width=576, bitmap_height=576, transform=META_MONITOR_TRANSFORM_NORMAL, bitmap_data=0x7f7c26588108 "", error=0x7ffd9314c8c8) at ../src/backends/meta-screen-cast-stream-src.c:307
#13 0x00007f7ca4f9e1d5 in meta_screen_cast_stream_src_draw_cursor_into
(src=0x565119e44280, cursor_texture=0x565117a934a0, scale=0.75, transform=META_MONITOR_TRANSFORM_NORMAL, data=0x7f7c26588108 "", error=0x7ffd9314c8c8)
at ../src/backends/meta-screen-cast-stream-src.c:344
#14 0x00007f7ca4f9e4ae in meta_screen_cast_stream_src_set_cursor_sprite_metadata
(src=0x565119e44280, spa_meta_cursor=0x7f7c265880d8, cursor_sprite=0x7f7c200064d0, x=1846, y=878, scale=0.75, transform=META_MONITOR_TRANSFORM_NORMAL)
at ../src/backends/meta-screen-cast-stream-src.c:459
#15 0x00007f7ca4f93c65 in meta_screen_cast_monitor_stream_src_set_cursor_metadata (src=0x565119e44280, spa_meta_cursor=0x7f7c265880d8)
at ../src/backends/meta-screen-cast-monitor-stream-src.c:696
#16 0x00007f7ca4f9de23 in meta_screen_cast_stream_src_set_cursor_metadata (src=0x565119e44280, spa_meta_cursor=0x7f7c265880d8) at ../src/backends/meta-screen-cast-stream-src.c:244
#17 0x00007f7ca4f9e550 in add_cursor_metadata (src=0x565119e44280, spa_buffer=0x565119a62cc0) at ../src/backends/meta-screen-cast-stream-src.c:481
#18 0x00007f7ca4f9e59c in maybe_record_cursor (src=0x565119e44280, spa_buffer=0x565119a62cc0) at ../src/backends/meta-screen-cast-stream-src.c:496
#19 0x00007f7ca4f9ecf4 in meta_screen_cast_stream_src_maybe_record_frame (src=0x565119e44280, flags=META_SCREEN_CAST_RECORD_FLAG_CURSOR_ONLY)
at ../src/backends/meta-screen-cast-stream-src.c:721
#20 0x00007f7ca4f92dbf in sync_cursor_state (monitor_src=0x565119e44280) at ../src/backends/meta-screen-cast-monitor-stream-src.c:266
#21 0x00007f7ca4f92e1d in cursor_changed (cursor_tracker=0x56511626df10, monitor_src=0x565119e44280) at ../src/backends/meta-screen-cast-monitor-stream-src.c:283
#22 0x00007f7ca62ba210 in g_closure_invoke (closure=0x565119e23050, return_value=0x0, n_param_values=1, param_values=0x7ffd9314cce0, invocation_hint=0x7ffd9314cc60)
at ../glib/gobject/gclosure.c:832
#23 0x00007f7ca62e8176 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x56511636e8f0, detail=detail@entry=0, instance=instance@entry=0x56511626df10, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd9314cce0) at ../glib/gobject/gsignal.c:3867
#24 0x00007f7ca62d7f75 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd9314ce80)
at ../glib/gobject/gsignal.c:3549
#25 0x00007f7ca62d8204 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3606
#26 0x00007f7ca4e9eef5 in cursor_texture_updated (cursor=0x7f7c200064d0, tracker=0x56511626df10) at ../src/backends/meta-cursor-tracker.c:104
#27 0x00007f7ca62ba210 in g_closure_invoke (closure=0x565117cae7d0, return_value=0x0, n_param_values=1, param_values=0x7ffd9314d110, invocation_hint=0x7ffd9314d090)
at ../glib/gobject/gclosure.c:832
#28 0x00007f7ca62e7ea8 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x565116272690, detail=detail@entry=0, instance=instance@entry=0x7f7c200064d0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params--Type <RET> for more, q to quit, c to continue without paging--
@entry=0x7ffd9314d110) at ../glib/gobject/gsignal.c:3796
#29 0x00007f7ca62d7f75 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd9314d2b0)
at ../glib/gobject/gsignal.c:3549
#30 0x00007f7ca62d8204 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3606
#31 0x00007f7ca4e9c4d3 in meta_cursor_sprite_set_texture (sprite=0x7f7c200064d0, texture=0x565117a934a0, hot_x=12, hot_y=12) at ../src/backends/meta-cursor.c:120
#32 0x00007f7ca4faa789 in update_cursor_sprite_texture (cursor_surface=0x565119a59940) at ../src/wayland/meta-wayland-cursor-surface.c:69
#33 0x00007f7ca4faaacb in meta_wayland_cursor_surface_apply_state (surface_role=0x565119a59940, pending=0x565117147900) at ../src/wayland/meta-wayland-cursor-surface.c:173
#34 0x00007f7ca4fc8cae in meta_wayland_surface_role_apply_state (surface_role=0x565119a59940, pending=0x565117147900) at ../src/wayland/meta-wayland-surface.c:1942
#35 0x00007f7ca4fc6854 in meta_wayland_surface_apply_state (surface=0x5651189cca80, state=0x565117147900) at ../src/wayland/meta-wayland-surface.c:856
#36 0x00007f7ca4fd38a7 in meta_wayland_transaction_apply (transaction=0x565116950c20, first_candidate=0x7ffd9314d5a0) at ../src/wayland/meta-wayland-transaction.c:201
#37 0x00007f7ca4fd3a84 in meta_wayland_transaction_maybe_apply_one (transaction=0x565116950c20, first_candidate=0x7ffd9314d5a0) at ../src/wayland/meta-wayland-transaction.c:258
#38 0x00007f7ca4fd3abf in meta_wayland_transaction_maybe_apply (transaction=0x565116950c20) at ../src/wayland/meta-wayland-transaction.c:268
#39 0x00007f7ca4fd3dd2 in meta_wayland_transaction_commit (transaction=0x565116950c20) at ../src/wayland/meta-wayland-transaction.c:374
#40 0x00007f7ca4fc6e2d in meta_wayland_surface_commit (surface=0x5651189cca80) at ../src/wayland/meta-wayland-surface.c:999
#41 0x00007f7ca4fc72f3 in wl_surface_commit (client=0x565116bda650, resource=0x56511988e580) at ../src/wayland/meta-wayland-surface.c:1151
#42 0x00007f7ca42f64f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#43 0x00007f7ca42f2f5e in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:673
#44 0x00007f7ca42f5b73 in ffi_call (cif=cif@entry=0x7ffd9314d8e0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd9314d9b0) at ../src/x86/ffi64.c:710
#45 0x00007f7ca484fada in wl_closure_invoke (closure=closure@entry=0x5651169f8380, target=<optimized out>, target@entry=0x56511988e580, opcode=opcode@entry=6, data=<optimized out>,
data@entry=0x565116bda650, flags=2) at ../wayland-1.21.0/src/connection.c:1025
#46 0x00007f7ca485401c in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../wayland-1.21.0/src/wayland-server.c:437
#47 0x00007f7ca48529e2 in wl_event_loop_dispatch (loop=0x56511666f300, timeout=<optimized out>) at ../wayland-1.21.0/src/event-loop.c:1027
#48 0x00007f7ca4fa8219 in wayland_event_source_dispatch (base=0x56511666f3f0, callback=0x0, data=0x0) at ../src/wayland/meta-wayland.c:111
#49 0x00007f7ca5d4887b in g_main_dispatch (context=0x565116010ab0) at ../glib/glib/gmain.c:3444
#50 g_main_context_dispatch (context=0x565116010ab0) at ../glib/glib/gmain.c:4162
#51 0x00007f7ca5d9f299 in g_main_context_iterate.constprop.0 (context=0x565116010ab0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4238
#52 0x00007f7ca5d47ddf in g_main_loop_run (loop=0x565116a7b400) at ../glib/glib/gmain.c:4438
#53 0x00007f7ca4f0949b in meta_context_run_main_loop (context=0x56511600c0c0, error=0x7ffd9314e090) at ../src/core/meta-context.c:465