Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
gtk
gtk
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,125
    • Issues 1,125
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 152
    • Merge Requests 152
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • gtkgtk
  • Issues
  • #61

Closed
Open
Opened 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
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: GNOME/gtk#61