Segfault in Jami + Wayland due to clutter
Hi!
I am currently trying to remove that line in the Jami (gnome client) source code:
setenv("GDK_BACKEND", "x11", true); // workaround for Wayland
Everything is working nicely... unless displaying video (sad for a video conf soft).
This is the backtrace I got
#0 0x00007ffff1922d37 in __memmove_avx_unaligned_erms () at /lib64/libc.so.6
#1 0x00007fffe621f908 in brw_upload_indices () at /usr/lib64/dri/i965_dri.so
#2 0x00007fffe622f231 in brw_upload_render_state () at /usr/lib64/dri/i965_dri.so
#3 0x00007fffe621eb74 in brw_draw_prims () at /usr/lib64/dri/i965_dri.so
#4 0x00007fffe64be303 in _mesa_validated_drawrangeelements () at /usr/lib64/dri/i965_dri.so
#5 0x00007fffe64be61c in _mesa_DrawElements () at /usr/lib64/dri/i965_dri.so
#6 0x00007ffff6844c8d in _cogl_framebuffer_gl_draw_indexed_attributes ()
at /lib64/libcogl.so.20
#7 0x00007ffff6888685 in _cogl_journal_flush_modelview_and_entries () at /lib64/libcogl.so.20
#8 0x00007ffff6888b0f in batch_and_call.part () at /lib64/libcogl.so.20
#9 0x00007ffff6889139 in _cogl_journal_flush_texcoord_vbo_offsets_and_entries ()
at /lib64/libcogl.so.20
#10 0x00007ffff6888dbf in _cogl_journal_flush_vbo_offsets_and_entries ()
at /lib64/libcogl.so.20
#11 0x00007ffff688a172 in _cogl_journal_flush () at /lib64/libcogl.so.20
#12 0x00007ffff68586c8 in cogl_flush () at /lib64/libcogl.so.20
#13 0x00007ffff688f022 in cogl_onscreen_swap_buffers_with_damage () at /lib64/libcogl.so.20
#14 0x00007ffff694def6 in clutter_stage_cogl_redraw () at /lib64/libclutter-1.0.so.0
#15 0x00007ffff69512df in clutter_stage_gdk_redraw () at /lib64/libclutter-1.0.so.0
#16 0x00007ffff69beee0 in _clutter_stage_do_update () at /lib64/libclutter-1.0.so.0
#17 0x00007ffff6950b7c in clutter_master_clock_gdk_update () at /lib64/libclutter-1.0.so.0
#18 0x00007ffff70cd742 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#19 0x00007ffff70e1604 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#20 0x00007ffff70ea3ae in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#21 0x00007ffff70ea9d3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#22 0x00007ffff7614cc3 in gdk_frame_clock_paint_idle () at /lib64/libgdk-3.so.0
#23 0x00007ffff75fef3d in gdk_threads_dispatch () at /lib64/libgdk-3.so.0
#24 0x00007ffff6fe1fb1 in g_timeout_dispatch () at /lib64/libglib-2.0.so.0
#25 0x00007ffff6fe14a0 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#26 0x00007ffff6fe1830 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#27 0x00007ffff6fe18d3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#28 0x00007ffff71f5c75 in g_application_run () at /lib64/libgio-2.0.so.0
Sure, I use i965 on that desktop. On another desktop:
#0 0x00007ffff1a4c667 in __memmove_avx_unaligned_erms () at /lib64/libc.so.6
#1 0x00007fffe603f958 in u_upload_data () at /usr/lib64/dri/radeonsi_dri.so
#2 0x00007fffe68b2e43 in tc_draw_vbo () at /usr/lib64/dri/radeonsi_dri.so
#3 0x00007fffe6534490 in st_draw_vbo () at /usr/lib64/dri/radeonsi_dri.so
#4 0x00007fffe65d2c43 in _mesa_validated_drawrangeelements () at /usr/lib64/dri/radeonsi_dri.so
#5 0x00007fffe65d2f5c in _mesa_DrawElements () at /usr/lib64/dri/radeonsi_dri.so
#6 0x00007ffff694dcad in () at /lib64/libcogl.so.20
#7 0x00007ffff69914c5 in () at /lib64/libcogl.so.20
#8 0x00007ffff699194f in () at /lib64/libcogl.so.20
#9 0x00007ffff6991f79 in () at /lib64/libcogl.so.20
#10 0x00007ffff6991bff in () at /lib64/libcogl.so.20
#11 0x00007ffff6992fa2 in () at /lib64/libcogl.so.20
#12 0x00007ffff6961738 in cogl_flush () at /lib64/libcogl.so.20
#13 0x00007ffff6997e02 in cogl_onscreen_swap_buffers_with_damage () at /lib64/libcogl.so.20
#14 0x00007ffff6a56f16 in () at /lib64/libclutter-1.0.so.0
#15 0x00007ffff6a5a30f in () at /lib64/libclutter-1.0.so.0
#16 0x00007ffff6ac7df0 in () at /lib64/libclutter-1.0.so.0
#17 0x00007ffff6a59bac in () at /lib64/libclutter-1.0.so.0
#18 0x00007ffff71d2742 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
If I search for similar issues, results seems related to drivers. But here it's not, I tested on ~10 devices, and it's perfectly working on X11 or with XDG_BACKEND set to x11.
For now I don't have any clue or any idea about what is going on. However, this part is causing that backtrace
auto stage = gtk_clutter_embed_get_stage(GTK_CLUTTER_EMBED(widgets->video_widget));
auto actor_info = gtk_clutter_actor_new_with_contents(widgets->hbox_call_info);
auto actor_controls = gtk_clutter_actor_new_with_contents(widgets->hbox_call_controls);
auto actor_smartInfo = gtk_clutter_actor_new_with_contents(widgets->vbox_call_smartInfo);
clutter_actor_add_child(stage, actor_info);
Any clue is appreciated.
Have a nice day,