[Bug 58962] Re: User-specific: Gnome file dialogs crash every time

Aaron Peromsik aaron at peromsik.net
Sun Sep 17 03:39:04 UTC 2006


I have come up with a way to reproduce this crash. It seems to be
triggered by some GNOME functionality which may or may not be supported
in Ubuntu but is configured by Mandriva by default. (We switched
recently and mostly kept our home directories intact.)

Mandriva configures a bunch of file browser bookmarks with translated
names. It accomplishes this by creating a hidden directory containing
some .desktop files. The file contains a link to the user's folders,
such as Documents, and translations for the name Documents in lots of
languages. Attaching such a file.

To reproduce the crash: (I did this in a new user account created in
dapper)

Make sure your Documents folder has more than one screenful of files. 
Make a folder in your home directory called "bookmarks".
Put the attached .desktop file there. Edit it to reference the actual path to your Documents folder.
Add a line to ~/.gtk-bookmarks which contains a file: URL to the .desktop file. (example: file:///home/aaron/bookmarks/documents-mdk.desktop)
Launch gedit. It should start in your Documents folder. 

Here's where some acrobatics are sometimes necessary. In my wife's
account it usually crashed right away. In the other account (possibly
related to building libgnomeui debug/unoptimized) I have to actually
poke the dialog at this point to make it crash: Scrolling the mouse
wheel up and down repeatedly usually makes it crash within 15 seconds or
so. Also, clicking the "Documents" shortcut again and then scrolling
usually makes it crash, sometimes just when the mouse focus moves back
to the file list. The traceback is always the same.

Right, the traceback. Pasted below. To get this level of detail, I had
to rebuild the libgnomeui package unoptimized... before doing that,
there were a couple levels which were showing "optimized out" for some
variable names.

I did spend some time poking around in the debugger but I didn't
actually find the bug. The memory management in the file chooser is
pretty intricate. gtk_file_folder_gnome_vfs_dispose() is called twice
for each folder object being freed. In the first call most of the values
are freed but the object itself is freed later in an idle callback. So
it's a little tricky to figure out which caller is freeing the structure
that is still being referenced in another folder's hash.

#0  IA__g_hash_table_lookup (hash_table=0x4400, key=0x84cd1d0) at ghash.c:242
#1  0xb4245f65 in lookup_folder_child_from_uri (folder=0x8489918, 
    uri=0x84cd1d0 "file:///home/bugdemo/Documents/c.txt", error=0x0)
    at gtkfilesystemgnomevfs.c:2341
#2  0xb42460c3 in lookup_folder_child (folder=0x8489918, path=0x849f798, 
    error=0x0) at gtkfilesystemgnomevfs.c:2390
#3  0xb4244f7d in get_vfs_info (file_system=0x8482060, path=0x849f798, 
    types=GTK_FILE_INFO_MIME_TYPE) at gtkfilesystemgnomevfs.c:1708
#4  0xb4245107 in gtk_file_system_gnome_vfs_render_icon (
    file_system=0x8482060, path=0x849f798, widget=0x8480000, pixel_size=16, 
    error=0x0) at gtkfilesystemgnomevfs.c:1785
#5  0xb7b385c0 in IA__gtk_file_system_render_icon (file_system=0x8482060, 
    path=0x849f798, widget=0x8480000, pixel_size=16, error=0x4400)
    at gtkfilesystem.c:699
#6  0xb7b2dee6 in list_icon_data_func (tree_column=0x81f5a48, cell=0x84cd1d0, 
    tree_model=0x84921f8, iter=0x0, data=0x8480000)
    at gtkfilechooserdefault.c:7095
#7  0xb7c539c5 in IA__gtk_tree_view_column_cell_set_cell_data (
    tree_column=0x81f5a48, tree_model=0x84921f8, iter=0xbf9fa9b4, 
    is_expander=0, is_expanded=0) at gtktreeviewcolumn.c:2553
#8  0xb7c4386e in gtk_tree_view_expose (widget=0x84770e0, event=0xbf9fafb0)
    at gtktreeview.c:3658
#9  0xb7b7e8e0 in _gtk_marshal_BOOLEAN__BOXED (closure=0x8136f80, 
    return_value=0xbf9fabd0, n_param_values=2, param_values=0xbf9faccc, 
    invocation_hint=0xbf9fabbc, marshal_data=0xb7c43337) at gtkmarshalers.c:83
#10 0xb71ff16f in g_type_class_meta_marshal (closure=0x8136f80, 
    return_value=0x84cd1d0, n_param_values=139252176, 
    param_values=0xbf9faccc, invocation_hint=0x84cd1d0, 
    marshal_data=0x84cd1d0) at gclosure.c:567
#11 0xb71ff79f in IA__g_closure_invoke (closure=0x8136f80, 
    return_value=0x84cd1d0, n_param_values=139252176, param_values=0x84cd1d0, 
    invocation_hint=0x84cd1d0) at gclosure.c:490
#12 0xb720e9ce in signal_emit_unlocked_R (node=0x8136e60, detail=0, 
    instance=0x84770e0, emission_return=0xbf9fae8c, 
    instance_and_params=0xbf9faccc) at gsignal.c:2476
#13 0xb720f886 in IA__g_signal_emit_valist (instance=0x84770e0, signal_id=48, 
    detail=0, 
    var_args=0xbf9faf10 "(¯\237¿°¯\237¿ÂàpG\b\002\017Æ·àpG\bø\t\023\b")
    at gsignal.c:2207
#14 0xb720fe89 in IA__g_signal_emit (instance=0x84cd1d0, signal_id=139252176, 
    detail=139252176) at gsignal.c:2241
#15 0xb7c60dcf in gtk_widget_event_internal (widget=0x84770e0, 
    event=0xbf9fafb0) at gtkwidget.c:3751
#16 0xb7b7d626 in IA__gtk_main_do_event (event=0xbf9fafb0) at gtkmain.c:1405
#17 0xb7a0edd7 in gdk_window_process_updates_internal (window=0x84769d0)
    at gdkwindow.c:2292
#18 0xb7a0eeab in IA__gdk_window_process_all_updates () at gdkwindow.c:2345
#19 0xb7a0ef2c in gdk_window_update_idle (data=0x0) at gdkwindow.c:2213
#20 0xb7197bf2 in g_idle_dispatch (source=0x8497180, callback=0x4400, 
    user_data=0x84cd1d0) at gmain.c:3796
#21 0xb71958d6 in IA__g_main_context_dispatch (context=0x810bad8)
    at gmain.c:1916
#22 0xb7198996 in g_main_context_iterate (context=0x810bad8, block=1, 
    dispatch=1, self=0x80f1300) at gmain.c:2547
#23 0xb7198cb8 in IA__g_main_loop_run (loop=0x83e34d8) at gmain.c:2751
#24 0xb7b7c765 in IA__gtk_main () at gtkmain.c:1026
#25 0x080670e6 in main ()

** Attachment added: ".desktop file shortcut from Mandriva, translates name of Documents bookmark"
   http://librarian.launchpad.net/4291213/documents-mdk.desktop

** Summary changed:

- User-specific: Gnome file dialogs crash every time
+ Gnome file dialogs crash after upgrading to Dapper from Mandriva 2006

-- 
Gnome file dialogs crash after upgrading to Dapper from Mandriva 2006
https://launchpad.net/bugs/58962




More information about the desktop-bugs mailing list