Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gtk gtk
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,496
    • Issues 1,496
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 252
    • Merge requests 252
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOME
  • gtkgtk
  • Issues
  • #61
Closed
Open
Created Mar 02, 2018 by matclab@matclab

Segfault in gdk_window_has_impl

Trying least gnucash 2.7.5 on arch linux 4.15.5, I get the following stack trace when trying to edit the account of one transaction : gtk3 has version 3.22.28-1

       Message: Process 4469 (gnucash) of user 1000 dumped core.

                Stack trace of thread 4469:
                #0  0x00007f0b7cfd7d42 gdk_window_has_impl (libgdk-3.so.0)
                #1  0x00007f0b7d01020f gdk_x11_window_get_xid (libgdk-3.so.0)
                #2  0x00007f0b4c839a73 gtk_im_context_xim_filter_keypress (im-xim.so)
                #3  0x00007f0b7fa6b6e4 gtk_im_multicontext_filter_keypress (libgtk-3.so.0)
                #4  0x00007f0b7d4b287e gnucash_sheet_key_press_event (libgncmod-register-gnome.so)
                #5  0x00007f0b7fa8ce78 _gtk_marshal_BOOLEAN__BOXEDv (libgtk-3.so.0)
                #6  0x00007f0b7f264db1 n/a (libgobject-2.0.so.0)
                #7  0x00007f0b7f2814b4 g_signal_emit_valist (libgobject-2.0.so.0)
                #8  0x00007f0b7f282240 g_signal_emit (libgobject-2.0.so.0)
                #9  0x00007f0b7fbe02c5 gtk_widget_event_internal (libgtk-3.so.0)
                #10 0x00007f0b7fc01ae4 gtk_window_propagate_key_event (libgtk-3.so.0)
                #11 0x00007f0b7fc0572c gtk_window_key_press_event (libgtk-3.so.0)

Here after is the analysis of a gnucash dev:

Interesting. The actual crash is at https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/gdk/gdkwindow.c#L664 Where they don’t check for a NULL window before dereferencing it. Looks to me like the problem is either at https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/modules/input/gtkimcontextxim.c#L656 or the next line. One of those calls is returning NULL and the code assumes that it doesn’t.

That might be because the event->window is NULL. That’s still a Gtk problem, though I’ll leave it up to the Gtk folks to figure it out. GnuCash is clean on this one.

You should probably start off by filing a bug with Arch and let the Gtk packager take it up with the Gtk folks.

Hope this may be of some help to you.

Assignee
Assign to
Time tracking