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 621782 - Crash using gbinding
Crash using gbinding
Status: RESOLVED INVALID
Product: glib
Classification: Platform
Component: gobject
2.25.x
Other Linux
: Normal critical
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2010-06-16 13:30 UTC by Ignacio Casal Quinteiro (nacho)
Modified: 2010-06-17 09:34 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
valgrind log (155.16 KB, application/x-compressed-tar)
2010-06-16 13:36 UTC, Ignacio Casal Quinteiro (nacho)
  Details
tests: Add a chain binding (2.21 KB, patch)
2010-06-16 13:58 UTC, Emmanuele Bassi (:ebassi)
none Details | Review
test (3.77 KB, text/plain)
2010-06-16 16:49 UTC, Ignacio Casal Quinteiro (nacho)
  Details
test_v2.c (3.81 KB, text/plain)
2010-06-16 18:43 UTC, Ignacio Casal Quinteiro (nacho)
  Details

Description Ignacio Casal Quinteiro (nacho) 2010-06-16 13:30:32 UTC
So I have the case where I have binded:

A -> B, B -> C. If I unbind A -> B, B -> C and then I bind A -> C I get a crash.

Backtrace:

Program received signal SIGABRT, Aborted.
0x00007ffff2a32a75 in *__GI_raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
	in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
  • #0 *__GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 *__GI_abort
    at abort.c line 92
  • #2 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 189
  • #3 malloc_printerr
  • #4 _int_realloc
    at malloc.c line 5219
  • #5 *__GI___libc_realloc
    at malloc.c line 3821
  • #6 IA__g_realloc
    at gmem.c line 182
  • #7 IA__g_object_weak_ref
    at gobject.c line 2107
  • #8 g_binding_constructed
    at gbinding.c line 534
  • #9 IA__g_object_newv
    at gobject.c line 1360
  • #10 IA__g_object_new_valist
    at gobject.c line 1448
  • #11 IA__g_object_new
    at gobject.c line 1166
  • #12 IA__g_object_bind_property_full
    at gbinding.c line 865
  • #13 IA__g_object_bind_property
    at gbinding.c line 928
  • #14 bind
    at gedit-tab.c line 329
  • #15 unbind_view
    at gedit-tab.c line 464
  • #16 remove_view
    at gedit-tab.c line 3574
  • #17 _gedit_tab_unsplit
    at gedit-tab.c line 3616
  • #18 IA__g_closure_invoke
    at gclosure.c line 767
  • #19 signal_emit_unlocked_R
    at gsignal.c line 3253
  • #20 IA__g_signal_emit_valist
    at gsignal.c line 2984
  • #21 IA__g_signal_emit
    at gsignal.c line 3041
  • #22 _gtk_action_emit_activate
    at gtkaction.c line 799
  • #23 IA__g_closure_invoke
    at gclosure.c line 767
  • #24 signal_emit_unlocked_R
    at gsignal.c line 3183
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2984
  • #26 IA__g_signal_emit
    at gsignal.c line 3041
  • #27 IA__gtk_widget_activate
    at gtkwidget.c line 4929
  • #28 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 1264
  • #29 IA__g_closure_invoke
    at gclosure.c line 767
  • #30 signal_emit_unlocked_R
    at gsignal.c line 3291
  • #31 gtk_binding_entry_activate
    at gtkbindings.c line 537
  • #32 binding_match_activate
    at gtkbindings.c line 1092
  • #33 gtk_bindings_activate_list
    at gtkbindings.c line 1237
  • #34 IA__gtk_bindings_activate_event
    at gtkbindings.c line 1332
  • #35 gtk_menu_shell_key_press
    at gtkmenushell.c line 874
  • #36 gtk_menu_key_press
    at gtkmenu.c line 3179
  • #37 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #38 IA__g_closure_invoke
    at gclosure.c line 767
  • #39 signal_emit_unlocked_R
    at gsignal.c line 3291
  • #40 IA__g_signal_emit_valist
    at gsignal.c line 2994
  • #41 IA__g_signal_emit
    at gsignal.c line 3041
  • #42 gtk_widget_event_internal
    at gtkwidget.c line 4898
  • #43 gtk_menu_window_event
    at gtkmenu.c line 998
  • #44 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #45 IA__g_closure_invoke
    at gclosure.c line 767
  • #46 signal_emit_unlocked_R
    at gsignal.c line 3253
  • #47 IA__g_signal_emit_valist
    at gsignal.c line 2994
  • #48 IA__g_signal_emit
    at gsignal.c line 3041
  • #49 gtk_widget_event_internal
    at gtkwidget.c line 4793
  • #50 IA__gtk_propagate_event
    at gtkmain.c line 2379
  • #51 IA__gtk_main_do_event
    at gtkmain.c line 1627
  • #52 gdk_event_source_dispatch
    at gdkeventsource.c line 302
  • #53 g_main_dispatch
    at gmain.c line 2044
  • #54 IA__g_main_context_dispatch
    at gmain.c line 2597
  • #55 g_main_context_iterate
    at gmain.c line 2675
  • #56 IA__g_main_loop_run
    at gmain.c line 2883
  • #57 IA__gtk_main
    at gtkmain.c line 1185
  • #58 gedit_main
    at gedit.c line 201
  • #59 main
    at gedit.c line 276

Comment 1 Ignacio Casal Quinteiro (nacho) 2010-06-16 13:36:56 UTC
Created attachment 163823 [details]
valgrind log

valgrind log
Comment 2 Emmanuele Bassi (:ebassi) 2010-06-16 13:58:41 UTC
Created attachment 163826 [details] [review]
tests: Add a chain binding

Test the case with a chain like A → B, B → C, and what happens when
switching to a direct A → C link.
Comment 3 Emmanuele Bassi (:ebassi) 2010-06-16 14:00:24 UTC
the attached test case does not crash - so this might either be the case of an error in the gedit code or a much more subtle issue. having a self-contained test case that does crash would help me immensely.
Comment 4 Ignacio Casal Quinteiro (nacho) 2010-06-16 16:49:54 UTC
Created attachment 163849 [details]
test

This is more or less what I do in gedit, here this test crashes.
If you remove the call to bind in on_button_clicked it doesn't crash, so it is a problem binding for the second time.
Comment 5 Ignacio Casal Quinteiro (nacho) 2010-06-16 18:37:04 UTC
mmm, somehow now the test does not crash for me, I'll try to make something else.
Comment 6 Ignacio Casal Quinteiro (nacho) 2010-06-16 18:43:59 UTC
Created attachment 163864 [details]
test_v2.c

Slightly modified test. Execute it and press in the button

Here it is what what I get with it:

Program received signal SIGABRT, Aborted.
0x00007ffff4d45a75 in *__GI_raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
	in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
  • #0 *__GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 *__GI_abort
    at abort.c line 92
  • #2 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 189
  • #3 malloc_printerr
  • #4 *__GI___libc_realloc
    at malloc.c line 3778
  • #5 IA__g_realloc
    at gmem.c line 182
  • #6 IA__g_object_weak_ref
    at gobject.c line 2107
  • #7 g_binding_constructed
    at gbinding.c line 534
  • #8 IA__g_object_newv
    at gobject.c line 1360
  • #9 IA__g_object_new_valist
    at gobject.c line 1448
  • #10 IA__g_object_new
    at gobject.c line 1166
  • #11 IA__g_object_bind_property_full
    at gbinding.c line 865
  • #12 IA__g_object_bind_property
    at gbinding.c line 928
  • #13 bind
  • #14 on_button_clicked
  • #15 IA__g_closure_invoke
    at gclosure.c line 767
  • #16 signal_emit_unlocked_R
    at gsignal.c line 3253
  • #17 IA__g_signal_emit_valist
    at gsignal.c line 2984
  • #18 IA__g_signal_emit
    at gsignal.c line 3041
  • #19 gtk_real_button_released
    at gtkbutton.c line 1690
  • #20 IA__g_closure_invoke
    at gclosure.c line 767
  • #21 signal_emit_unlocked_R
    at gsignal.c line 3183
  • #22 IA__g_signal_emit_valist
    at gsignal.c line 2984
  • #23 IA__g_signal_emit
    at gsignal.c line 3041
  • #24 gtk_button_button_release
    at gtkbutton.c line 1582
  • #25 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #26 IA__g_closure_invoke
    at gclosure.c line 767
  • #27 signal_emit_unlocked_R
    at gsignal.c line 3291
  • #28 IA__g_signal_emit_valist
    at gsignal.c line 2994
  • #29 IA__g_signal_emit
    at gsignal.c line 3041
  • #30 gtk_widget_event_internal
    at gtkwidget.c line 4898
  • #31 IA__gtk_propagate_event
    at gtkmain.c line 2405
  • #32 IA__gtk_main_do_event
    at gtkmain.c line 1627
  • #33 gdk_event_source_dispatch
    at gdkeventsource.c line 302
  • #34 g_main_dispatch
    at gmain.c line 2044
  • #35 IA__g_main_context_dispatch
    at gmain.c line 2597
  • #36 g_main_context_iterate
    at gmain.c line 2675
  • #37 IA__g_main_loop_run
    at gmain.c line 2883
  • #38 IA__gtk_main
    at gtkmain.c line 1185
  • #39 main

Comment 7 Ignacio Casal Quinteiro (nacho) 2010-06-16 19:48:25 UTC
After rebuilding all the deps seems it works. So I guess this can be closed as NOTABUG and sorry for waisting your time.
Comment 8 Emmanuele Bassi (:ebassi) 2010-06-17 09:34:16 UTC
closing, as per last comment.