[Bug 278292] graphics/gimp crash on quit

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 27 Apr 2024 03:21:07 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278292

--- Comment #4 from Tatsuki Makino <tatsuki_makino@hotmail.com> ---
These seem to be the same place, but when a problem arises, the contents seem
to be tattered.
And I don't know if it's a problem with graphics/gimp-app or devel/glib20.
The test with glib back to 2.78.4,2 has a large impact area, so I will do it
again next time.

(lldb) breakpoint set -n quit_close_all_dialog_new
Breakpoint 1: where = gimp`quit_close_all_dialog_new + 18 at
quit-dialog.c:151:3, address = 0x0000000000768492
(lldb) n
(lldb)  
Process 51388 stopped
* thread #1, name = 'gimp-2.10', stop reason = step over
    frame #0: 0x0000000000768da8
gimp`quit_close_all_dialog_new(gimp=0x0000000803f98620, do_quit=1) at
quit-dialog.c:284:1
   281                                             private);
   282 
   283    return private->dialog;
-> 284  }
   285 
   286  static void
   287  quit_close_all_dialog_free (QuitDialog *private)
(lldb) v -P 1 private->box
(GimpMessageBox *) private->box = 0x0000000808f92610 {
  parent_instance = {
    container = {
      widget = {
        object = {
          parent_instance = {
            g_type_instance = {
              g_class = 0x00000008070b9000
            }
            ref_count = 1
            qdata = NULL
          }
          _g_sealed__flags = 2098976
        }
        _g_sealed__private_flags = 13824
        _g_sealed__state = '\0'
        _g_sealed__saved_state = '\0'
        _g_sealed__name = 0x0000000000000000
        _g_sealed__style = 0x0000000803586810
        _g_sealed__requisition = (width = 0, height = 0)
        _g_sealed__allocation = (x = -1, y = -1, width = 1, height = 1)
        _g_sealed__window = NULL
        _g_sealed__parent = 0x000000080a92a970
      }
      _g_sealed__focus_child = NULL
      _g_sealed__border_width = 12
      _g_sealed__need_resize = 0
      _g_sealed__resize_mode = 0
      _g_sealed__reallocate_redraws = 0
      _g_sealed__has_focus_chain = 1
    }
    _g_sealed__children = 0x000000080a944f00
    _g_sealed__spacing = 12
    _g_sealed__homogeneous = 0
  }
  icon_name = 0x000000080ad26390 "gimp-warning"
  repeat = 0
  label = {
    [0] = 0x0000000808f92c30
    [1] = 0x0000000808f934f0
    [2] = NULL
  }
  image = 0x000000080a6cb2d0
  idle_id = 0
}
(lldb) c
Process 51388 resuming
Process 51388 stopped
* thread #1, name = 'gimp-2.10', stop reason = signal SIGBUS: hardware error
    frame #0: 0x0000000801f918b8
libgobject-2.0.so.0`g_type_check_instance_is_a(type_instance=0x0000000808f92610,
iface_type=34433904736) at gtype.c:4141:25
   4138     return type_instance->g_class->g_type == iface_type;
   4139
   4140   node = lookup_type_node_I (type_instance->g_class->g_type);
-> 4141   check = node && node->is_instantiatable && iface &&
type_node_conforms_to_U (node, iface, TRUE, FALSE);
   4142   
   4143   return check;
   4144 }
(lldb) bt
* thread #1, name = 'gimp-2.10', stop reason = signal SIGBUS: hardware error
  * frame #0: 0x0000000801f918b8
libgobject-2.0.so.0`g_type_check_instance_is_a(type_instance=0x0000000808f92610,
iface_type=34433904736) at gtype.c:4141:25
    frame #1: 0x000000000099456c
gimp`gimp_message_box_set_primary_text(box=0x0000000808f92610, format="There
are %d images with unsaved changes:") at gimpmessagebox.c:436:3
    frame #2: 0x00000000007695e4
gimp`quit_close_all_dialog_container_changed(images=0x000000080acced80,
image=0x000000080adee2a0, private=0x000000080ad492a0) at quit-dialog.c:342:3
    frame #3: 0x0000000801f66320
libgobject-2.0.so.0`g_cclosure_marshal_VOID__OBJECT(closure=0x000000080abb1f00,
return_value=0x0000000000000000, n_param_values=2,
param_values=0x00007fffffffa710, invocation_hint=0x00007fffffffa6a0,
marshal_data=0x0000000000000000) at gmarshal.c:1852:3
    frame #4: 0x0000000801f5f2c6
libgobject-2.0.so.0`g_closure_invoke(closure=0x000000080abb1f00,
return_value=0x0000000000000000, n_param_values=2,
param_values=0x00007fffffffa710, invocation_hint=0x00007fffffffa6a0) at
gclosure.c:834:7
    frame #5: 0x0000000801f873bc
libgobject-2.0.so.0`signal_emit_unlocked_R(node=0x00007fffffffab30, detail=0,
instance=0x000000080acced80, emission_return=0x0000000000000000,
instance_and_params=0x00007fffffffa710) at gsignal.c:3888:8
    frame #6: 0x0000000801f855c3
libgobject-2.0.so.0`signal_emit_valist_unlocked(instance=0x000000080acced80,
signal_id=42, detail=0, var_args=0x00007fffffffadb0) at gsignal.c:3520:7
    frame #7: 0x0000000801f840a5
libgobject-2.0.so.0`g_signal_emit_valist(instance=0x000000080acced80,
signal_id=42, detail=0, var_args=0x00007fffffffadb0) at gsignal.c:3263:7
    frame #8: 0x0000000801f85be8
libgobject-2.0.so.0`g_signal_emit(instance=0x000000080acced80, signal_id=42,
detail=0) at gsignal.c:3583:3
    frame #9: 0x0000000000b9ac24
gimp`gimp_container_remove(container=0x000000080acced80,
object=0x000000080adee2a0) at gimpcontainer.c:684:3
    frame #10: 0x0000000000c71fd1
gimp`gimp_list_clear(container=0x000000080acced80) at gimplist.c:313:5
    frame #11: 0x0000000000b9b948
gimp`gimp_container_clear(container=0x000000080acced80) at
gimpcontainer.c:822:7
    frame #12: 0x0000000000b9d4a2
gimp`gimp_container_dispose(object=0x000000080acced80) at gimpcontainer.c:247:3
    frame #13: 0x0000000801f69b3c
libgobject-2.0.so.0`g_object_unref(_object=0x000000080acced80) at
gobject.c:4381:3
    frame #14: 0x0000000000768e02
gimp`quit_close_all_dialog_free(private=0x000000080ad492a0) at
quit-dialog.c:290:3
    frame #15: 0x0000000801f6e29f
libgobject-2.0.so.0`weak_refs_notify(data=0x000000080a940610) at
gobject.c:3643:5
    frame #16: 0x000000080207d5df
libglib-2.0.so.0`g_data_set_internal(datalist=0x000000080ad61960, key_id=54,
new_data=0x0000000000000000, new_destroy_func=0x0000000000000000,
dataset=0x0000000000000000) at gdataset.c:468:15
    frame #17: 0x000000080207d889
libglib-2.0.so.0`g_datalist_id_set_data_full(datalist=0x000000080ad61960,
key_id=54, data=0x0000000000000000, destroy_func=0x0000000000000000) at
gdataset.c:792:3
    frame #18: 0x0000000801f7184f
libgobject-2.0.so.0`g_object_real_dispose(object=0x000000080ad61950) at
gobject.c:1752:3
    frame #19: 0x0000000800e8f28b
libgimpwidgets-2.0.so.0`gimp_dialog_dispose(object=0x000000080ad61950) at
gimpdialog.c:203:3
    frame #20: 0x0000000801f6953e
libgobject-2.0.so.0`g_object_run_dispose(object=0x000000080ad61950) at
gobject.c:1839:3
    frame #21: 0x00000008011a47f4 libgtk-x11-2.0.so.0`gtk_object_destroy + 180
    frame #22: 0x0000000000768e61
gimp`quit_close_all_dialog_response(dialog=0x000000080ad61950, response_id=-6,
private=0x000000080ad492a0) at quit-dialog.c:304:3
    frame #23: 0x0000000801f6437f
libgobject-2.0.so.0`g_cclosure_marshal_VOID__INT(closure=0x000000080abb0100,
return_value=0x0000000000000000, n_param_values=2,
param_values=0x00007fffffffb630, invocation_hint=0x00007fffffffb5c0,
marshal_data=0x0000000000000000) at gmarshal.c:540:3
    frame #24: 0x0000000801f5f2c6
libgobject-2.0.so.0`g_closure_invoke(closure=0x000000080abb0100,
return_value=0x0000000000000000, n_param_values=2,
param_values=0x00007fffffffb630, invocation_hint=0x00007fffffffb5c0) at
gclosure.c:834:7
    frame #25: 0x0000000801f873bc
libgobject-2.0.so.0`signal_emit_unlocked_R(node=0x00007fffffffba50, detail=0,
instance=0x000000080ad61950, emission_return=0x0000000000000000,
instance_and_params=0x00007fffffffb630) at gsignal.c:3888:8
    frame #26: 0x0000000801f855c3
libgobject-2.0.so.0`signal_emit_valist_unlocked(instance=0x000000080ad61950,
signal_id=396, detail=0, var_args=0x00007fffffffbcd0) at gsignal.c:3520:7
    frame #27: 0x0000000801f840a5
libgobject-2.0.so.0`g_signal_emit_valist(instance=0x000000080ad61950,
signal_id=396, detail=0, var_args=0x00007fffffffbcd0) at gsignal.c:3263:7
    frame #28: 0x0000000801f85be8
libgobject-2.0.so.0`g_signal_emit(instance=0x000000080ad61950, signal_id=396,
detail=0) at gsignal.c:3583:3
    frame #29: 0x0000000801f63a40
libgobject-2.0.so.0`g_cclosure_marshal_VOID__VOID(closure=0x000000080abb0060,
return_value=0x0000000000000000, n_param_values=1,
param_values=0x00007fffffffc0f0, invocation_hint=0x00007fffffffc080,
marshal_data=0x0000000000000000) at gmarshal.c:117:3
    frame #30: 0x0000000801f5f2c6
libgobject-2.0.so.0`g_closure_invoke(closure=0x000000080abb0060,
return_value=0x0000000000000000, n_param_values=1,
param_values=0x00007fffffffc0f0, invocation_hint=0x00007fffffffc080) at
gclosure.c:834:7
    frame #31: 0x0000000801f873bc
libgobject-2.0.so.0`signal_emit_unlocked_R(node=0x00007fffffffc500, detail=0,
instance=0x000000080a6cb170, emission_return=0x0000000000000000,
instance_and_params=0x00007fffffffc0f0) at gsignal.c:3888:8
    frame #32: 0x0000000801f855c3
libgobject-2.0.so.0`signal_emit_valist_unlocked(instance=0x000000080a6cb170,
signal_id=354, detail=0, var_args=0x00007fffffffc780) at gsignal.c:3520:7
    frame #33: 0x0000000801f840a5
libgobject-2.0.so.0`g_signal_emit_valist(instance=0x000000080a6cb170,
signal_id=354, detail=0, var_args=0x00007fffffffc780) at gsignal.c:3263:7
    frame #34: 0x0000000801f85be8
libgobject-2.0.so.0`g_signal_emit(instance=0x000000080a6cb170, signal_id=354,
detail=0) at gsignal.c:3583:3
    frame #35: 0x00000008010c0e0f
libgtk-x11-2.0.so.0`___lldb_unnamed_symbol7623 + 63
    frame #36: 0x0000000801f63a40
libgobject-2.0.so.0`g_cclosure_marshal_VOID__VOID(closure=0x00000008070452a0,
return_value=0x0000000000000000, n_param_values=1,
param_values=0x00007fffffffcc20, invocation_hint=0x00007fffffffcbb0,
marshal_data=0x00000008010c0dd0) at gmarshal.c:117:3
    frame #37: 0x0000000801f5fe21
libgobject-2.0.so.0`g_type_class_meta_marshal(closure=0x00000008070452a0,
return_value=0x0000000000000000, n_param_values=1,
param_values=0x00007fffffffcc20, invocation_hint=0x00007fffffffcbb0,
marshal_data=0x0000000000000340) at gclosure.c:1035:5
    frame #38: 0x0000000801f5f2c6
libgobject-2.0.so.0`g_closure_invoke(closure=0x00000008070452a0,
return_value=0x0000000000000000, n_param_values=1,
param_values=0x00007fffffffcc20, invocation_hint=0x00007fffffffcbb0) at
gclosure.c:834:7
    frame #39: 0x0000000801f86baf
libgobject-2.0.so.0`signal_emit_unlocked_R(node=0x00007fffffffd030, detail=0,
instance=0x000000080a6cb170, emission_return=0x0000000000000000,
instance_and_params=0x00007fffffffcc20) at gsignal.c:3721:7
    frame #40: 0x0000000801f855c3
libgobject-2.0.so.0`signal_emit_valist_unlocked(instance=0x000000080a6cb170,
signal_id=353, detail=0, var_args=0x00007fffffffd2b0) at gsignal.c:3520:7
    frame #41: 0x0000000801f840a5
libgobject-2.0.so.0`g_signal_emit_valist(instance=0x000000080a6cb170,
signal_id=353, detail=0, var_args=0x00007fffffffd2b0) at gsignal.c:3263:7
    frame #42: 0x0000000801f85be8
libgobject-2.0.so.0`g_signal_emit(instance=0x000000080a6cb170, signal_id=353,
detail=0) at gsignal.c:3583:3
    frame #43: 0x00000008010c0b0f
libgtk-x11-2.0.so.0`___lldb_unnamed_symbol7613 + 15
    frame #44: 0x0000000801179ee6
libgtk-x11-2.0.so.0`___lldb_unnamed_symbol9489 + 102
    frame #45: 0x0000000801f5fe21
libgobject-2.0.so.0`g_type_class_meta_marshal(closure=0x000000080409f320,
return_value=0x00007fffffffd6e0, n_param_values=2,
param_values=0x00007fffffffd710, invocation_hint=0x00007fffffffd6a0,
marshal_data=0x0000000000000160) at gclosure.c:1035:5
    frame #46: 0x0000000801f5f2c6
libgobject-2.0.so.0`g_closure_invoke(closure=0x000000080409f320,
return_value=0x00007fffffffd6e0, n_param_values=2,
param_values=0x00007fffffffd710, invocation_hint=0x00007fffffffd6a0) at
gclosure.c:834:7
    frame #47: 0x0000000801f8761a
libgobject-2.0.so.0`signal_emit_unlocked_R(node=0x00007fffffffdb30, detail=0,
instance=0x000000080a6cb170, emission_return=0x00007fffffffdbd8,
instance_and_params=0x00007fffffffd710) at gsignal.c:3928:7
    frame #48: 0x0000000801f85672
libgobject-2.0.so.0`signal_emit_valist_unlocked(instance=0x000000080a6cb170,
signal_id=152, detail=0, var_args=0x00007fffffffddb0) at gsignal.c:3533:7
    frame #49: 0x0000000801f840a5
libgobject-2.0.so.0`g_signal_emit_valist(instance=0x000000080a6cb170,
signal_id=152, detail=0, var_args=0x00007fffffffddb0) at gsignal.c:3263:7
    frame #50: 0x0000000801f85be8
libgobject-2.0.so.0`g_signal_emit(instance=0x000000080a6cb170, signal_id=152,
detail=0) at gsignal.c:3583:3
    frame #51: 0x00000008012b1856
libgtk-x11-2.0.so.0`___lldb_unnamed_symbol11931 + 646
    frame #52: 0x0000000801178087 libgtk-x11-2.0.so.0`gtk_propagate_event + 311
    frame #53: 0x0000000801177d43 libgtk-x11-2.0.so.0`gtk_main_do_event + 1155
    frame #54: 0x00000008013f0211
libgdk-x11-2.0.so.0`___lldb_unnamed_symbol2528 + 81
    frame #55: 0x00000008020b6f05
libglib-2.0.so.0`g_main_dispatch(context=0x0000000803f88fc0) at gmain.c:3344:27
    frame #56: 0x00000008020b4987
libglib-2.0.so.0`g_main_context_dispatch_unlocked(context=0x0000000803f88fc0)
at gmain.c:4152:7
    frame #57: 0x00000008020b4ba6
libglib-2.0.so.0`g_main_context_iterate_unlocked(context=0x0000000803f88fc0,
block=1, dispatch=1, self=0x00000008035499e0) at gmain.c:4217:5
    frame #58: 0x00000008020b50d2
libglib-2.0.so.0`g_main_loop_run(loop=0x000000080705fd50) at gmain.c:4419:5
    frame #59: 0x00000000006e22ac
gimp`app_run(full_prog_name="/usr/local/bin/gimp",
filenames=0x0000000000000000, alternate_system_gimprc=0x0000000000000000,
alternate_gimprc=0x0000000000000000, session_name=0x0000000000000000,
batch_interpreter=0x0000000000000000, batch_commands=0x0000000000000000,
as_new=0, no_interface=0, no_data=0, no_fonts=0, no_splash=0, be_verbose=0,
use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0,
show_playground=0, show_debug_menu=0, stack_trace_mode=GIMP_STACK_TRACE_NEVER,
pdb_compat_mode=GIMP_PDB_COMPAT_ON,
backtrace_file="/home/tatsuki/.config/GIMP/2.10/CrashLog/GIMP-crash-1714186491.txt")
at app.c:445:7
    frame #60: 0x00000000006e6cb7 gimp`main(argc=1, argv=0x0000000803570830) at
main.c:656:3
    frame #61: 0x00000000006e1830 gimp`_start + 256
(lldb) f 2
frame #2: 0x00000000007695e4
gimp`quit_close_all_dialog_container_changed(images=0x000000080acced80,
image=0x000000080adee2a0, private=0x000000080ad492a0) at quit-dialog.c:342:3
   339    accel_string = gtk_accelerator_get_label (private->accel_key,
   340                                              private->accel_mods);
   341 
-> 342    gimp_message_box_set_primary_text (private->box,
   343                                       /* TRANSLATORS: unless your
language
   344                                          msgstr[0] applies to 1 only (as
   345                                          in English), replace "one" with
%d. */
(lldb) v -P 1 private->box
(GimpMessageBox *) private->box = 0x0000000808f92610 {
  parent_instance = {
    container = {
      widget = {
        object = {
          parent_instance = {
            g_type_instance = {
              g_class = 0x000000080a9564e0
            }
            ref_count = 17765184
            qdata = 0x00007fff00000036
          }
          _g_sealed__flags = 183357216
        }
        _g_sealed__private_flags = 57920
        _g_sealed__state = '\xf6'
        _g_sealed__saved_state = '\x01'
        _g_sealed__name = 0x00007fff00000857 ""
        _g_sealed__style = 0x000000080aed5ea0
        _g_sealed__requisition = (width = 34512336, height = 8)
        _g_sealed__allocation = (x = 2139, y = 32767, width = 177532800, height
= 8)
        _g_sealed__window = 0x00000008012bc080
        _g_sealed__parent = 0x00007fff0000085b
      }
      _g_sealed__focus_child = 0x000000080a94ef80
      _g_sealed__border_width = 49280
      _g_sealed__need_resize = 1
      _g_sealed__resize_mode = 1
      _g_sealed__reallocate_redraws = 1
      _g_sealed__has_focus_chain = 0
    }
    _g_sealed__children = 0xaaaaaaaaaaaaaaaa
    _g_sealed__spacing = -21846
    _g_sealed__homogeneous = 0
  }
  icon_name = 0xaaaaaaaaaaaaaaaa ""
  repeat = -1431655766
  label = {
    [0] = 0xaaaaaaaaaaaaaaaa
    [1] = 0xaaaaaaaaaaaaaaaa
    [2] = 0xaaaaaaaaaaaaaaaa
  }
  image = 0xaaaaaaaaaaaaaaaa
  idle_id = 2863311530
}
(lldb) f 0
frame #0: 0x0000000801f918b8
libgobject-2.0.so.0`g_type_check_instance_is_a(type_instance=0x0000000808f92610,
iface_type=34433904736) at gtype.c:4141:25
   4138     return type_instance->g_class->g_type == iface_type;
   4139
   4140   node = lookup_type_node_I (type_instance->g_class->g_type);
-> 4141   check = node && node->is_instantiatable && iface &&
type_node_conforms_to_U (node, iface, TRUE, FALSE);
   4142   
   4143   return check;
   4144 }
(lldb) v -P 0
(GTypeInstance *) type_instance = 0x0000000808f92610
(GType) iface_type = 34433904736
(TypeNode *) node = 0x00070300fffffff8
(TypeNode *) iface = 0x00000008046bb060
(gboolean) check = 0

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.