save selection to channel crashes gimp
gimp 2.99 commit 1f1533b2 Linux x64 / gnome 4
Description of the bug
Reproduction
Is the bug reproducible? Always
Reproduction steps:
- open an image or make a new one (i used 8-bit RGBA)
- make a selection, e.g. with rect select and hit enter, or free select
- choose Select->Save to channel
- get core dump after a second or two, but no stack trace or message or Eeek, just immediate exit.
Printed on the terminal: (gimp-2.99:1570308): Gtk-CRITICAL **: 02:34:05.787: gtk_application_uninhibit: assertion 'cookie > 0' failed
(script-fu:1570374): LibGimpBase-WARNING **: 02:45:38.778: script-fu: gimp_wire_read(): error Segmentation fault (core dumped)
Expected result:
Actual result:
Additional information
If you have a backtrace for a crash or a warning, paste it here.
#0 0x00007f8c0f69fdd3 in printf_positional () at /lib64/libc.so.6
#1 0x00007f8c0f6a3eea in __vfprintf_internal () at /lib64/libc.so.6
#2 0x00007f8c0f6c5ba5 in __vsnprintf_internal () at /lib64/libc.so.6
#3 0x00007f8c10b15292 in g_snprintf () at /lib64/libglib-2.0.so.0
#4 0x00000000007f1903 in items_actions_update (group=0x97aba90, prefix=0x991b97 "vectors", items=0x0)
at ../app/actions/items-actions.c:123
#5 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70)
at ../app/widgets/gimpuimanager.c:369
#6 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#7 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#8 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#9 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#10 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#11 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#12 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#13 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#14 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#15 0x00000000007e382b in drawable_lock_content_cmd_callback
(action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../app/actions/drawable-commands.c:253
#16 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#17 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#18 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#19 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#20 0x000000000054b013 in gimp_action_emit_change_state (action=0x83a0b60, value=0xa8c78a0) at ../app/widgets/gimpaction.c:266
#21 0x00000000005b4d0b in gimp_toggle_action_real_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:214
#22 0x00000000005b4925 in gimp_toggle_action_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:226
#23 0x00000000007e3191 in drawable_actions_update (group=<optimized out>, data=<optimized out>)
at ../app/actions/drawable-actions.c:231
#24 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70)
at ../app/widgets/gimpuimanager.c:369
#25 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#26 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#27 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#28 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#29 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#30 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#31 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#32 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#33 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#34 0x00000000007e382b in drawable_lock_content_cmd_callback
(action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../app/actions/drawable-commands.c:253
#35 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#36 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#37 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#38 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#39 0x000000000054b013 in gimp_action_emit_change_state (action=0x83a0b60, value=0xae3be30) at ../app/widgets/gimpaction.c:266
#40 0x00000000005b4d0b in gimp_toggle_action_real_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:214
#41 0x00000000005b4925 in gimp_toggle_action_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:226
#42 0x00000000007e3191 in drawable_actions_update (group=<optimized out>, data=<optimized out>)
at ../app/actions/drawable-actions.c:231
#43 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70)
at ../app/widgets/gimpuimanager.c:369
#44 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#45 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#46 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#47 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#48 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#49 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#50 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#51 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#52 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#53 0x00000000007e382b in drawable_lock_content_cmd_callback
(action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../app/actions/drawable-commands.c:253
#54 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#55 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#56 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#57 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#58 0x000000000054b013 in gimp_action_emit_change_state (action=0x83a0b60, value=0xa8ae2a0) at ../app/widgets/gimpaction.c:266
#59 0x00000000005b4d0b in gimp_toggle_action_real_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:214
#60 0x00000000005b4925 in gimp_toggle_action_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:226
#61 0x00000000007e3191 in drawable_actions_update (group=<optimized out>, data=<optimized out>)
at ../app/actions/drawable-actions.c:231
#62 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70)
at ../app/widgets/gimpuimanager.c:369
#63 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#64 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#65 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#66 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#67 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#68 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#69 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#70 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#71 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#72 0x00000000007e382b in drawable_lock_content_cmd_callback
(action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../app/actions/drawable-commands.c:253
#73 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#74 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#75 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#76 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#77 0x000000000054b013 in gimp_action_emit_change_state (action=0x83a0b60, value=0xae38e10) at ../app/widgets/gimpaction.c:266
#78 0x00000000005b4d0b in gimp_toggle_action_real_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:214
#79 0x00000000005b4925 in gimp_toggle_action_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:226
#80 0x00000000007e3191 in drawable_actions_update (group=<optimized out>, data=<optimized out>)
at ../app/actions/drawable-actions.c:231
#81 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70)
at ../app/widgets/gimpuimanager.c:369
#82 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#83 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#84 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#85 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#86 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#87 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#88 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#89 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#90 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#91 0x00000000007e382b in drawable_lock_content_cmd_callback
(action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../app/actions/drawable-commands.c:253
#92 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#93 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#94 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#95 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#96 0x000000000054b013 in gimp_action_emit_change_state (action=0x83a0b60, value=0xe5e2000) at ../app/widgets/gimpaction.c:266
#97 0x00000000005b4d0b in gimp_toggle_action_real_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:214
#98 0x00000000005b4925 in gimp_toggle_action_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:226
#99 0x00000000007e3191 in drawable_actions_update (group=<optimized out>, data=<optimized out>)
at ../app/actions/drawable-actions.c:231
#100 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70)
at ../app/widgets/gimpuimanager.c:369
#101 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#102 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#103 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#104 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#105 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#106 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#107 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
. . .
#5262 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#5263 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
#5264 0x000000000054b013 in gimp_action_emit_change_state (action=0x83a0b60, value=0xad106c0) at ../app/widgets/gimpaction.c:266
#5265 0x00000000005b4d0b in gimp_toggle_action_real_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:214
#5266 0x00000000005b4925 in gimp_toggle_action_toggle (action=0x83a0b60) at ../app/widgets/gimptoggleaction.c:226
#5267 0x00000000007e3191 in drawable_actions_update (group=<optimized out>, data=<optimized out>) at ../app/actions/drawable-actions.c:231
#5268 0x00000000005b920b in gimp_ui_manager_real_update (manager=<optimized out>, update_data=0xaea1a70) at ../app/widgets/gimpuimanager.c:369
#5269 0x00007f8c108482c7 in g_cclosure_marshal_VOID__POINTERv () at /lib64/libgobject-2.0.so.0
#5270 0x00007f8c10845450 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#5271 0x00007f8c1085ed6a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#5272 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#5273 0x0000000000858f99 in gimp_display_shell_flush (shell=0x9f8bbe0) at ../app/display/gimpdisplayshell.c:1988
#5274 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#5275 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#5276 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#5277 0x00007f8c1085f0b2 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#5278 0x00000000007e382b in drawable_lock_content_cmd_callback (action=<optimized out>, value=<optimized out>, data=<optimized out>) at ../app/actions/drawable-commands.c:253
#5279 0x00007f8c10845261 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#5280 0x00007f8c10858246 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#5281 0x00007f8c1085ef3d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#5282 0x00007f8c1085f2b8 in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
(probably runs out of stack space; i interrupted it at #8341)
#4 0x00000000007f1903 in items_actions_update (group=0x97aba90, prefix=0x991b97 "vectors", items=0x0)
at ../app/actions/items-actions.c:123
123 g_snprintf (action, sizeof (action), "%s-visible", prefix);
(gdb) print prefix
$1 = (const gchar *) 0x991b97 "vectors"
(gdb) print action
$2 = '\000' <repeats 24 times>, "K\"\200\000\000\000\000"
(so nothing odd there, it's not been printed into yet)
ps -efd | grep gimp has,
lee 1570308 2630208 8 02:32 pts/6 00:00:45 /home/lee/opt/bin/gimp-2.99
lee 1570374 1570308 0 02:32 pts/6 00:00:00 /home/lee/opt/lib64/gimp/2.99/plug-ins/script-fu/script-fu -gimp 271 12 11 -run 1
and the system isn't out of memory.
Edited by Liam Quin (ankh/demib0y/barefootliam)