gsk: App crashes when snapshoting a scaled node
When doing a snapshot with a gtk_snapshot_scale
call the app crashes, this is probably specific to the nodes used in this specific snapshot fn as scale works elsewhere.
The first bad commit in a bisect is d9a2b74b
The app also says malloc(): unaligned tcache chunk detected
on HEAD
Here is the log from gdb snapshot; run; bt
at gtk d9a2b74b
0x00007ffff6891184 in __pthread_kill_implementation () from /usr/lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff6891184 in __pthread_kill_implementation () at /usr/lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff683f00e in raise () at /usr/lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff68287fc in abort () at /usr/lib/x86_64-linux-gnu/libc.so.6
#3 0x00007ffff6884c1e in __libc_message () at /usr/lib/x86_64-linux-gnu/libc.so.6
#4 0x00007ffff689b23a in () at /usr/lib/x86_64-linux-gnu/libc.so.6
#5 0x00007ffff689bcec in malloc_consolidate () at /usr/lib/x86_64-linux-gnu/libc.so.6
#6 0x00007ffff689df91 in _int_malloc () at /usr/lib/x86_64-linux-gnu/libc.so.6
#7 0x00007ffff689f4af in malloc () at /usr/lib/x86_64-linux-gnu/libc.so.6
#8 0x00007fffea4892bd in gen_vertex_arrays.part () at /usr/lib/x86_64-linux-gnu/GL/default/lib/dri/iris_dri.so
#9 0x00007ffff72d583a in gsk_gl_command_queue_execute
(self=0x55555708b860, surface_height=surface_height@entry=877, scale=scale@entry=1, scissor=0x5555591c9db0, default_framebuffer=0) at ../gsk/gl/gskglcommandqueue.c:1067
#10 0x00007ffff72f36dc in gsk_gl_render_job_render (job=0x555559152e40, root=0x55555918c370) at ../gsk/gl/gskglrenderjob.c:4460
#11 0x00007ffff72d0f98 in gsk_gl_renderer_render (renderer=0x5555569ba7f0, root=0x55555918c370, update_area=<optimized out>) at ../gsk/gl/gskglrenderer.c:314
#12 0x00007ffff72b42fd in gsk_renderer_render (renderer=0x5555569ba7f0, root=0x55555918c370, region=<optimized out>) at ../gsk/gskrenderer.c:463
#13 0x00007ffff70af677 in gtk_widget_render (widget=widget@entry=0x5555563887e0, surface=0x5555569b9c90, region=region@entry=0x5555591b46e0) at ../gtk/gtkwidget.c:11934
#14 0x00007ffff70b7cd9 in surface_render (surface=<optimized out>, region=region@entry=0x5555591b46e0, widget=widget@entry=0x5555563887e0) at ../gtk/gtkwindow.c:4738
#15 0x00007ffff7234037 in _gdk_marshal_BOOLEAN__BOXEDv
(closure=0x555558ba0da0, return_value=0x7fffffffd610, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=<optimized out>) at gdk/gdkmarshalers.c:130
#16 0x00007ffff7f7365a in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff7f8d97e in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff7f8e743 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ffff72629f9 in gdk_surface_paint_on_clock (clock=<optimized out>, data=0x5555569b9c90) at ../gdk/gdksurface.c:1377
#20 0x00007ffff7f7365a in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Here is the output from gdb
from HEAD (d948ac62)
(gdb) bt
#0 0x00007ffff70d816f in gsk_transform_transform () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#1 0x00007ffff70d817b in gsk_transform_transform () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#2 0x00007ffff70d817b in gsk_transform_transform () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#3 0x00007ffff70d817b in gsk_transform_transform () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#4 0x00007ffff70d817b in gsk_transform_transform () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#5 0x00007ffff70eeda9 in gsk_gl_render_job_push_modelview () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#6 0x00007ffff70fd255 in gsk_gl_render_job_visit_transform_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#7 0x00007ffff70fa0a1 in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#8 0x00007ffff70f974f in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#9 0x00007ffff70fd0bc in gsk_gl_render_job_visit_transform_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff70fa0a1 in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff70f974f in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff70fd0bc in gsk_gl_render_job_visit_transform_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#13 0x00007ffff70fa0a1 in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff70f974f in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff70fd0bc in gsk_gl_render_job_visit_transform_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff70fa0a1 in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#17 0x00007ffff70f974f in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#18 0x00007ffff70fe623 in gsk_gl_render_job_visit_rounded_clip_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#19 0x00007ffff70f9ff8 in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#20 0x00007ffff70f974f in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#21 0x00007ffff70fd0bc in gsk_gl_render_job_visit_transform_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#22 0x00007ffff70fa0a1 in gsk_gl_render_job_visit_node () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#23 0x00007ffff70fee5a in gsk_gl_render_job_render () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
Edited by Maximiliano