Crash (SIGSEGV) when Chromium window is resized/maximized on scaled screen
Chromium now has experimental wayland support, with --enable-features=useOzonePlatform --ozone-platform=wayland
. However, using it often crashes the whole desktop for me. I have two displays - one 125% scaled 1080p laptop display and one 100% scaled 1080p monitor.
This issue effectively makes Chromium Wayland unusable for me on GNOME.
I am not sure if this is to do with gnome-shell, mutter or mesa; any help debugging this would be appreciated.
Here's a gdb backtrace with debug symbols:
pwndbg> bt
#0 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:49
#1 0x0000560c19add2c2 in dump_gjs_stack_on_signal_handler ()
#2 <signal handler called> () at ../sysdeps/unix/sysv/linux/sigaction.c
#3 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#4 0x00007f28900a28a4 in __GI_abort () at abort.c:79
#5 0x00007f2888889629 in _iris_batch_flush (batch=<optimized out>, file=<optimized out>, line=<optimized out>) at ../src/gallium/drivers/iris/iris_batch.c:749
#6 0x00007f28893865b1 in iris_fence_flush (ctx=0x560c1b085e10, out_fence=0x7ffc19f48bc8, flags=<optimized out>) at ../src/gallium/drivers/iris/iris_fence.c:248
#7 0x00007f28888f598d in st_context_flush (stctxi=0x560c1b0a50e0, flags=2, fence=0x7ffc19f48bc8, before_flush_cb=0x7f2888899610 <notify_before_flush_cb>, args=0x7ffc19f48bd0) at ../src/mesa/state_tracker/st_manager.c:674
#8 0x00007f2888899845 in dri_flush (cPriv=<optimized out>, dPriv=<optimized out>, flags=<optimized out>, reason=<optimized out>) at ../src/gallium/frontends/dri/dri_drawable.c:526
#9 0x00007f2889ee8fe2 in dri2_drm_swap_buffers () at /lib64/libEGL_mesa.so.0
#10 0x00007f2889ee24a2 in dri2_swap_buffers () at /lib64/libEGL_mesa.so.0
#11 0x00007f2889ed5e5a in eglSwapBuffers () at /lib64/libEGL_mesa.so.0
#12 0x00007f288fd62ad0 in cogl_onscreen_egl_swap_buffers_with_damage (onscreen=0x560c1b180460, rectangles=0x7ffc19f48fc0, n_rectangles=0, info=<optimized out>, user_data=<optimized out>) at ../cogl/cogl/winsys/cogl-onscreen-egl.c:299
#13 0x00007f28903a75e1 in meta_onscreen_native_swap_buffers_with_damage (onscreen=0x560c1b180460, rectangles=0x7ffc19f48fc0, n_rectangles=0, frame_info=0x560c1e538480, user_data=0x7ffc19f49250) at ../src/backends/native/meta-onscreen-native.c:1000
#14 0x00007f288fd5a35d in cogl_onscreen_swap_buffers_with_damage (onscreen=onscreen@entry=0x560c1b180460, rectangles=rectangles@entry=0x7ffc19f48fc0, n_rectangles=n_rectangles@entry=0, info=0x560c1e538480, user_data=user_data@entry=0x7ffc19f49250) at ../cogl/cogl/cogl-onscreen.c:324
#15 0x00007f2890532ce6 in swap_framebuffer (stage_window=<optimized out>, view=<optimized out>, swap_region=<optimized out>, swap_with_damage=<optimized out>, frame=<optimized out>) at ../clutter/clutter/cogl/clutter-stage-cogl.c:299
#16 0x00007f289053362f in clutter_stage_cogl_redraw_view_primary (frame=0x7ffc19f49250, view=0x560c1e4afc30, stage_cogl=<optimized out>) at ../clutter/clutter/cogl/clutter-stage-cogl.c:670
#17 clutter_stage_cogl_redraw_view (stage_window=<optimized out>, view=0x560c1e4afc30, frame=0x7ffc19f49250) at ../clutter/clutter/cogl/clutter-stage-cogl.c:739
#18 0x00007f2890517146 in _clutter_stage_window_redraw_view (frame=0x7ffc19f49250, view=0x560c1e4afc30, window=0x560c1ae93f30) at ../clutter/clutter/clutter-stage-window.c:113
#19 handle_frame_clock_frame (frame_clock=<optimized out>, frame_count=<optimized out>, time_us=<optimized out>, user_data=0x560c1e4afc30) at ../clutter/clutter/clutter-stage-view.c:1183
#20 0x00007f28904e28e0 in clutter_frame_clock_dispatch (time_us=15745277701, frame_clock=0x7f284405df20) at ../clutter/clutter/clutter-frame-clock.c:492
#21 frame_clock_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../clutter/clutter/clutter-frame-clock.c:532
#22 0x00007f2890ef80ff in g_markup_parse_context_parse (context=0x0, text=<optimized out>, text_len=<optimized out>, error=<optimized out>) at ../glib/gmarkup.c:1357