After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 704267 - regression gsourceclosure: segfault in gedit file chooser
regression gsourceclosure: segfault in gedit file chooser
Status: RESOLVED FIXED
Product: glib
Classification: Platform
Component: general
2.37.x
Other Linux
: Normal normal
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2013-07-15 16:12 UTC by Colin Walters
Modified: 2013-07-22 13:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gsourceclosure: fix idle/timeout/signal closures, add child watch support (9.55 KB, patch)
2013-07-17 23:00 UTC, Dan Winship
committed Details | Review
Use correct prototype (1.24 KB, patch)
2013-07-22 12:44 UTC, Colin Walters
accepted-commit_now Details | Review

Description Colin Walters 2013-07-15 16:12:15 UTC
Just opening the file chooser and press Control-L, then type:

Thread 1 (Thread 0x7ffff7fd1980 (LWP 23036))

  • #0 value_to_ffi_type
    at ../../gobject/gclosure.c line 1135
  • #1 g_cclosure_marshal_generic
    at ../../gobject/gclosure.c line 1432
  • #2 g_closure_invoke
    at ../../gobject/gclosure.c line 777
  • #3 source_closure_callback
    at ../../gobject/gsourceclosure.c line 122
  • #4 g_main_dispatch
    at ../../glib/gmain.c line 3064
  • #5 g_main_context_dispatch
    at ../../glib/gmain.c line 3640
  • #6 g_main_context_iterate
    at ../../glib/gmain.c line 3711
  • #7 g_main_context_iteration
    at ../../glib/gmain.c line 3772
  • #8 g_application_run
    at ../../gio/gapplication.c line 1635
  • #9 main
    at ../../gedit/gedit.c line 68
(gdb)
Comment 1 Paolo Borelli 2013-07-15 16:21:04 UTC
probably gtk?
Comment 2 Sébastien Wilmet 2013-07-17 20:46:04 UTC
The bug comes from glib:

1da47d5ede3384105c035638fb4eb533d8989e20 is the first bad commit
commit 1da47d5ede3384105c035638fb4eb533d8989e20
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 2 19:59:23 2013 -0300

    gsourceclosure: use g_cclosure_marshal_generic
    
    For the glib-defined source types, and any source type that defines a
    closure callback but not a closure marshal, use
    g_cclosure_marshal_generic. And then remove all the other remaining
    source closure marshals.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=701511
Comment 3 Sébastien Wilmet 2013-07-17 20:50:00 UTC
In gedit, it occurs also in the search and replace:

Search -> Replace... -> type something in the "Search for" text entry.
Comment 4 Dan Winship 2013-07-17 23:00:02 UTC
Created attachment 249451 [details] [review]
gsourceclosure: fix idle/timeout/signal closures, add child watch support

And add a test for all source types.
Comment 5 Matthias Clasen 2013-07-17 23:13:16 UTC
Review of attachment 249451 [details] [review]:

yay, tests
Comment 6 Dan Winship 2013-07-18 01:42:25 UTC
Attachment 249451 [details] pushed as 72a7e82 - gsourceclosure: fix idle/timeout/signal closures, add child watch support
Comment 7 Colin Walters 2013-07-21 19:54:39 UTC
I'm getting:

(/home/walters/src/glib/gobject/tests/.libs/lt-closure:23298): GLib-CRITICAL **: g_main_loop_quit: assertion 'loop != NULL' failed
Comment 8 Colin Walters 2013-07-22 12:44:30 UTC
Created attachment 249796 [details] [review]
Use correct prototype
Comment 9 Dan Winship 2013-07-22 13:00:34 UTC
Comment on attachment 249796 [details] [review]
Use correct prototype

oops