commit af109522bb9a345c28ace3a05c785c4273fb48b5 (HEAD)Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>Date: Wed Aug 15 15:05:19 2018 -0400 configuration: store Ring account config in account dir Change-Id: I56e4a8f74400f1c838bc3cd1a9b82b1e2c23ccb1
Thread 1 "gnome-ring" received signal SIGSEGV, Segmentation fault.0x00007ffff6965fc2 in gtk_stack_draw_slide (cr=0x61b000131680, widget=0x6250003e9b20) at ../../../../gtk/gtkstack.c:20922092 ../../../../gtk/gtkstack.c: No such file or directory.(gdb) bt#0 0x00007ffff6965fc2 in gtk_stack_draw_slide (cr=0x61b000131680, widget=0x6250003e9b20) at ../../../../gtk/gtkstack.c:2092#1 0x00007ffff6965fc2 in gtk_stack_render (gadget=<optimized out>, cr=0x61b000131680, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, data=0x0) at ../../../../gtk/gtkstack.c:2190#2 0x00007ffff67ff32d in gtk_css_custom_gadget_draw (gadget=<optimized out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at ../../../../gtk/gtkcsscustomgadget.c:159#3 0x00007ffff6804002 in gtk_css_gadget_draw (gadget=0x6210004912f0, cr=0x61b000131680) at ../../../../gtk/gtkcssgadget.c:885#4 0x00007ffff6965b05 in gtk_stack_draw (widget=<optimized out>, cr=<optimized out>) at ../../../../gtk/gtkstack.c:2117#5 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=widget@entry=0x6250003e9b20, cr=cr@entry=0x61b000131680, clip_to_size=clip_to_size@entry=1) at ../../../../gtk/gtkwidget.c:7032#6 0x00007ffff67fa1ca in gtk_container_propagate_draw (container=container@entry=0x6250003b4230, child=0x6250003e9b20, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3850#7 0x00007ffff67fa29d in gtk_container_draw (widget=0x6250003b4230, cr=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3670#8 0x00007ffff6918456 in _gtk_pixel_cache_draw (cache=0x607000593990, cr=cr@entry=0x61b000131680, window=0x625001393660, view_rect=view_rect@entry=0x7fffffffd0a0, canvas_rect=canvas_rect@entry=0x7fffffffd0b0, draw=draw@entry=0x7ffff69ff830 <draw_bin>, user_data=0x6250003b4230) at ../../../../gtk/gtkpixelcache.c:468#9 0x00007ffff69ff9f0 in gtk_viewport_render (gadget=<optimized out>, cr=0x61b000131680, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, data=0x0) at ../../../../gtk/gtkviewport.c:357#10 0x00007ffff67ff32d in gtk_css_custom_gadget_draw (gadget=<optimized out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at ../../../../gtk/gtkcsscustomgadget.c:159#11 0x00007ffff6804002 in gtk_css_gadget_draw (gadget=0x6210013c36f0, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcssgadget.c:885#12 0x00007ffff6a006fd in gtk_viewport_draw (widget=<optimized out>, cr=0x61b000131680) at ../../../../gtk/gtkviewport.c:947#13 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=widget@entry=0x6250003b4230, cr=cr@entry=0x61b000131680, clip_to_size=clip_to_size@entry=1) at ../../../../gtk/gtkwidget.c:7032#14 0x00007ffff67fa1ca in gtk_container_propagate_draw (container=container@entry=0x6290004a9110, child=0x6250003b4230, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3850#15 0x00007ffff67fa29d in gtk_container_draw (widget=0x6290004a9110, cr=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3670#16 0x00007ffff69464cb in gtk_scrolled_window_render (gadget=<optimized out>, cr=0x61b000131680, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, data=0x0) at ../../../../gtk/gtkscrolledwindow.c:2102#17 0x00007ffff67ff32d in gtk_css_custom_gadget_draw (gadget=<optimized out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at ../../../../gtk/gtkcsscustomgadget.c:159#18 0x00007ffff6804002 in gtk_css_gadget_draw (gadget=0x621000744ee0, cr=0x61b000131680) at ../../../../gtk/gtkcssgadget.c:885#19 0x00007ffff6944821 in gtk_scrolled_window_draw (widget=<optimized out>, cr=<optimized out>) at ../../../../gtk/gtkscrolledwindow.c:3029#20 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=widget@entry=0x6290004a9110, cr=cr@entry=0x61b000131680, clip_to_size=clip_to_size@entry=1) at ../../../../gtk/gtkwidget.c:7032#21 0x00007ffff67fa1ca in gtk_container_propagate_draw (container=container@entry=0x625000f4cd30, child=0x6290004a9110, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3850#22 0x00007ffff67fa29d in gtk_container_draw (widget=0x625000f4cd30, cr=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3670#23 0x00007ffff6918456 in _gtk_pixel_cache_draw (cache=0x607000590970, cr=cr@entry=0x61b000131680, window=0x625000be3970, view_rect=view_rect@entry=0x7fffffffd740, canvas_rect=canvas_rect@entry=0x7fffffffd750, draw=draw@entry=0x7ffff69ff830 <draw_bin>, user_data=0x625000f4cd30) at ../../../../gtk/gtkpixelcache.c:468#24 0x00007ffff69ff9f0 in gtk_viewport_render (gadget=<optimized out>, cr=0x61b000131680, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, data=0x0) at ../../../../gtk/gtkviewport.c:357#25 0x00007ffff67ff32d in gtk_css_custom_gadget_draw (gadget=<optimized out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at ../../../../gtk/gtkcsscustomgadget.c:159#26 0x00007ffff6804002 in gtk_css_gadget_draw (gadget=0x6210004aa320, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcssgadget.c:885#27 0x00007ffff6a006fd in gtk_viewport_draw (widget=<optimized out>, cr=0x61b000131680) at ../../../../gtk/gtkviewport.c:947#28 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=widget@entry=0x625000f4cd30, cr=cr@entry=0x61b000131680, clip_to_size=clip_to_size@entry=1) at ../../../../gtk/gtkwidget.c:7032#29 0x00007ffff67fa1ca in gtk_container_propagate_draw (container=container@entry=0x6190006c92b0, child=0x625000f4cd30, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3850#30 0x00007ffff67fa29d in gtk_container_draw (widget=0x6190006c92b0, cr=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3670#31 0x00007ffff69464cb in gtk_scrolled_window_render (gadget=<optimized out>, cr=0x61b000131680, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, data=0x0) at ../../../../gtk/gtkscrolledwindow.c:2102#32 0x00007ffff67ff32d in gtk_css_custom_gadget_draw (gadget=<optimized out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at ../../../../gtk/gtkcsscustomgadget.c:159#33 0x00007ffff6804002 in gtk_css_gadget_draw (gadget=0x6210004906e0, cr=0x61b000131680) at ../../../../gtk/gtkcssgadget.c:885#34 0x00007ffff6944821 in gtk_scrolled_window_draw (widget=<optimized out>, cr=<optimized out>) at ../../../../gtk/gtkscrolledwindow.c:3029#35 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=widget@entry=0x6190006c92b0, cr=cr@entry=0x61b000131680, clip_to_size=clip_to_size@entry=1) at ../../../../gtk/gtkwidget.c:7032#36 0x00007ffff67fa1ca in gtk_container_propagate_draw (container=container@entry=0x625000085230, child=0x6190006c92b0, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3850#37 0x00007ffff6966050 in gtk_stack_render (gadget=<optimized out>, cr=0x61b000131680, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, data=0x0) at ../../../../gtk/gtkstack.c:2205#38 0x00007ffff67ff32d in gtk_css_custom_gadget_draw (gadget=<optimized out>, cr=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at ../../../../gtk/gtkcsscustomgadget.c:159#39 0x00007ffff6804002 in gtk_css_gadget_draw (gadget=0x62100009e390, cr=0x61b000131680) at ../../../../gtk/gtkcssgadget.c:885#40 0x00007ffff6965b05 in gtk_stack_draw (widget=<optimized out>, cr=<optimized out>) at ../../../../gtk/gtkstack.c:2117#41 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=widget@entry=0x625000085230, cr=cr@entry=0x61b000131680, clip_to_size=clip_to_size@entry=1) at ../../../../gtk/gtkwidget.c:7032#42 0x00007ffff67fa1ca in gtk_container_propagate_draw (container=container@entry=0x6190003f8d50, child=0x625000085230, cr=cr@entry=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3850#43 0x00007ffff67fa29d in gtk_container_draw (widget=0x6190003f8d50, cr=0x61b000131680) at ../../../../gtk/gtkcontainer.c:3670#44 0x00007ffff6a1cba2 in gtk_window_draw (widget=0x6190003f8d50, cr=0x61b000131680) at ../../../../gtk/gtkwindow.c:10420#45 0x00007ffff6a0e854 in gtk_widget_draw_internal (widget=0x6190003f8d50, cr=0x61b000131680, clip_to_size=<optimized out>) at ../../../../gtk/gtkwidget.c:7032#46 0x00007ffff6a17878 in gtk_widget_render (widget=widget@entry=0x6190003f8d50, window=0x625000008980, region=<optimized out>) at ../../../../gtk/gtkwidget.c:17542#47 0x00007ffff68c70a9 in gtk_main_do_event (event=<optimized out>) at ../../../../gtk/gtkmain.c:1838#48 0x00007ffff65c82a5 in _gdk_event_emit (event=event@entry=0x7fffffffe030) at ../../../../gdk/gdkevents.c:73#49 0x00007ffff65d87d6 in _gdk_window_process_updates_recurse_helper (window=0x625000008980, expose_region=<optimized out>) at ../../../../gdk/gdkwindow.c:3852#50 0x00007ffff65d9946 in gdk_window_process_updates_internal (window=0x625000008980) at ../../../../gdk/gdkwindow.c:3998#51 0x00007ffff65d9b04 in gdk_window_process_updates_with_mode (window=<optimized out>, recurse_mode=<optimized out>) at ../../../../gdk/gdkwindow.c:4193#52 0x00007ffff61d3b6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0#53 0x00007ffff61e68f3 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0#54 0x00007ffff61ef882 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0#55 0x00007ffff61efecf in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0#56 0x00007ffff65d115f in _gdk_frame_clock_emit_paint (frame_clock=<optimized out>) at ../../../../gdk/gdkframeclock.c:640#57 0x00007ffff65d18cd in gdk_frame_clock_paint_idle (data=0x625000021f60) at ../../../../gdk/gdkframeclockidle.c:459#58 0x00007ffff65bcac8 in gdk_threads_dispatch (data=0x61900000ecc0) at ../../../../gdk/gdk.c:755#59 0x00007ffff60f2573 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0#60 0x00007ffff60f1ae8 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0#61 0x00007ffff60f1ed8 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0#62 0x00007ffff60f1f6c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0#63 0x00007ffff62ba13d in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0#64 0x00005555556299a0 in main(int, char**) (argc=2, argv=0x7fffffffe908) at /home/hle/Development/ring/ring-client-gnome/src/main.cpp:37
I have investigated the issue on the GTK+ side, looks like there might be some silly GTK+ bug involved. I have prepared a patch which might somehow improve the situation. Still testing it.
--- a/gtk/gtkstack.c 2018-09-26 15:24:51.246398773 -0400+++ b/gtk/gtkstack.c 2018-09-26 15:24:51.246398773 -0400@@ -2089,11 +2089,13 @@ y += priv->last_visible_surface_allocation.y;- if (gtk_widget_get_valign (priv->last_visible_child->widget) == GTK_ALIGN_END &&- priv->last_visible_widget_height > allocation.height)- y -= priv->last_visible_widget_height - allocation.height;- else if (gtk_widget_get_valign (priv->last_visible_child->widget) == GTK_ALIGN_CENTER)- y -= (priv->last_visible_widget_height - allocation.height) / 2;+ if (priv->last_visible_child) {+ if (gtk_widget_get_valign (priv->last_visible_child->widget) == GTK_ALIGN_END &&+ priv->last_visible_widget_height > allocation.height)+ y -= priv->last_visible_widget_height - allocation.height;+ else if (gtk_widget_get_valign (priv->last_visible_child->widget) == GTK_ALIGN_CENTER)+ y -= (priv->last_visible_widget_height - allocation.height) / 2;+ } cairo_save (cr); cairo_set_source_surface (cr, priv->last_visible_surface, x, y);
https://gitlab.gnome.org/GNOME/gtk/merge_requests/361 merged. The situation should greatly improve with more recent versions of gtk, in the meanwhile we should try to optimize timings so this bug doesn't crash the client...