GNOME Bugzilla – Bug 338286
Crash when closing a dock, with latest libgtk+ (2.8.17)
Last modified: 2008-01-15 13:06:45 UTC
Steps to reproduce: 1. Open the "Layers, Channels & Paths" dock 2. Close the dock. 3. Click okay when asked if you are sure. Stack trace: Stack trace isn't very useful because it's a heap corruption issue, here's the responsible valgrind information: ==32444== Invalid free() / delete / delete[] ==32444== at 0x401CFCF: free (vg_replace_malloc.c:235) ==32444== by 0x4732E8B: g_free (gmem.c:187) ==32444== by 0x81385B4: gimp_dockable_destroy (gimpdockable.c:245) ==32444== by 0x46DF422: g_cclosure_marshal_VOID__VOID (gmarshal.c:77) ==32444== by 0x46D316E: ??? (gclosure.c:567) ==32444== by 0x46D379E: g_closure_invoke (gclosure.c:490) ==32444== by 0x46E2B16: ??? (gsignal.c:2554) ==32444== by 0x46E3B18: g_signal_emit_valist (gsignal.c:2197) ==32444== by 0x46E3E88: g_signal_emit (gsignal.c:2241) ==32444== by 0x42771F1: ??? (gtkobject.c:419) ==32444== by 0x434289E: ??? (gtkwidget.c:6672) ==32444== by 0x46D5EAB: g_object_unref (gobject.c:1734) ==32444== by 0x46D69FB: g_object_run_dispose (gobject.c:572) ==32444== by 0x42771AD: gtk_object_destroy (gtkobject.c:404) ==32444== by 0x433B30D: gtk_widget_destroy (gtkwidget.c:2011) ==32444== by 0x426F8B4: ??? (gtknotebook.c:2516) ==32444== by 0x41D006F: gtk_container_foreach (gtkcontainer.c:1292) ==32444== by 0x41D1D94: ??? (gtkcontainer.c:829) ==32444== by 0x4275888: ??? (gtknotebook.c:895) ==32444== by 0x46DF422: g_cclosure_marshal_VOID__VOID (gmarshal.c:77) ==32444== by 0x46D316E: ??? (gclosure.c:567) ==32444== by 0x46D379E: g_closure_invoke (gclosure.c:490) ==32444== by 0x46E2B16: ??? (gsignal.c:2554) ==32444== by 0x46E3B18: g_signal_emit_valist (gsignal.c:2197) ==32444== by 0x46E3E88: g_signal_emit (gsignal.c:2241) ==32444== by 0x42771F1: ??? (gtkobject.c:419) ==32444== by 0x434289E: ??? (gtkwidget.c:6672) ==32444== by 0x46D5EAB: g_object_unref (gobject.c:1734) ==32444== by 0x8137DC3: gimp_dock_remove_book (gimpdock.c:710) ==32444== by 0x8136933: gimp_dock_destroy (gimpdock.c:322) ==32444== Address 0x4D86260 is 0 bytes inside a block of size 7 free'd ==32444== at 0x401CFCF: free (vg_replace_malloc.c:235) ==32444== by 0x4732E8B: g_free (gmem.c:187) ==32444== by 0x81385D6: gimp_dockable_destroy (gimpdockable.c:251) ==32444== by 0x46DF422: g_cclosure_marshal_VOID__VOID (gmarshal.c:77) ==32444== by 0x46D316E: ??? (gclosure.c:567) ==32444== by 0x46D379E: g_closure_invoke (gclosure.c:490) ==32444== by 0x46E2B16: ??? (gsignal.c:2554) ==32444== by 0x46E3B18: g_signal_emit_valist (gsignal.c:2197) ==32444== by 0x46E3E88: g_signal_emit (gsignal.c:2241) ==32444== by 0x42771F1: ??? (gtkobject.c:419) ==32444== by 0x434289E: ??? (gtkwidget.c:6672) ==32444== by 0x46D69F3: g_object_run_dispose (gobject.c:571) ==32444== by 0x42771AD: gtk_object_destroy (gtkobject.c:404) ==32444== by 0x433B30D: gtk_widget_destroy (gtkwidget.c:2011) ==32444== by 0x426F8B4: ??? (gtknotebook.c:2516) ==32444== by 0x41D006F: gtk_container_foreach (gtkcontainer.c:1292) ==32444== by 0x41D1D94: ??? (gtkcontainer.c:829) ==32444== by 0x4275888: ??? (gtknotebook.c:895) ==32444== by 0x46DF422: g_cclosure_marshal_VOID__VOID (gmarshal.c:77) ==32444== by 0x46D316E: ??? (gclosure.c:567) ==32444== by 0x46D379E: g_closure_invoke (gclosure.c:490) ==32444== by 0x46E2B16: ??? (gsignal.c:2554) ==32444== by 0x46E3B18: g_signal_emit_valist (gsignal.c:2197) ==32444== by 0x46E3E88: g_signal_emit (gsignal.c:2241) ==32444== by 0x42771F1: ??? (gtkobject.c:419) ==32444== by 0x434289E: ??? (gtkwidget.c:6672) ==32444== by 0x46D5EAB: g_object_unref (gobject.c:1734) ==32444== by 0x8137DC3: gimp_dock_remove_book (gimpdock.c:710) ==32444== by 0x8136933: gimp_dock_destroy (gimpdock.c:322) ==32444== by 0x814DBC5: gimp_image_dock_destroy (gimpimagedock.c:283) Other information: This bug was reported into the Ubuntu bug tracking system at https://launchpad.net/distros/ubuntu/+source/gimp/+bug/39206/
Created attachment 63346 [details] [review] Possible patch to fix problem This patch fixes the problem for me. Could somebody more familiar with the code review it and see if it's okay?
I have merged the relevant fix from the HEAD branch instead: 2006-04-13 Sven Neumann <sven@gimp.org> Merged from HEAD branch: * app/widgets/gimpdockable.c (gimp_dockable_destroy): always set dockable->blurb to NULL, also if its memory is shared with dockable->name. Fixes bug #338286.
Something I observed with both your patches, is that: * I click on "close layers dock", * dialog pops up, asking me if it can close all the tabs, * I wait a bit * "this applications doesn't react" popup comes up.
*** Bug 338329 has been marked as a duplicate of this bug. ***
Wouldn't my last comment warrant to reopen the bug?
No, since that seems to be a misfeature of your window manager. I cannot reproduce this behaviour using metacity 2.12.3.
This happens with metacity 2.14.2 - you suppose, I should file this as a metacity bug?
Yes, please file a bug report against metacity.
Thanks for the answers, I filed bug 338983
*** Bug 339428 has been marked as a duplicate of this bug. ***