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 80986 - nautilus crashes when reordering bookmarks
nautilus crashes when reordering bookmarks
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: Bookmarks
unspecified
Other other
: High critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2002-05-06 23:04 UTC by Manuel Clos
Modified: 2007-04-30 21:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to fix it. (13.11 KB, patch)
2002-05-28 18:10 UTC, Damon Chaplin
none Details | Review

Description Manuel Clos 2002-05-06 23:05:38 UTC
Package: nautilus
Severity: normal
Version: 1.1.14
Synopsis: nautilus crashes when reordering bookmarks
Bugzilla-Product: nautilus
Bugzilla-Component: Bookmarks
BugBuddy-GnomeVersion: 2.0 (1.116.1)

Description:
Description of Problem:
nautilus crashes when I try to reorder the bookmarks

Steps to reproduce the problem:
1. open the bookmarks window
2. try to reorder the bookmarks
3. 

Actual Results:
nautilus crashes

Expected Results:
nautilus reordering the bookmarks

How often does this happen?
always

Additional Information:




Debugging Information:

Backtrace was generated from '/gnome/head/INSTALL/bin/nautilus'

[New Thread 1024 (LWP 31016)]
[New Thread 2049 (LWP 31017)]
[New Thread 1026 (LWP 31018)]
[New Thread 2051 (LWP 31019)]
[New Thread 3076 (LWP 31020)]
[New Thread 4101 (LWP 31021)]
[New Thread 5126 (LWP 31022)]
[New Thread 6151 (LWP 31023)]
[New Thread 7176 (LWP 31024)]
0x40b4ba69 in wait4 () from /lib/libc.so.6
  • #0 wait4
    from /lib/libc.so.6
  • #1 __check_rhosts_file
    from /lib/libc.so.6
  • #2 waitpid
    from /lib/libpthread.so.0
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 593
  • #4 pthread_sighandler
    from /lib/libpthread.so.0
  • #5 sigaction
    from /lib/libc.so.6
  • #6 g_log
  • #7 get_selected_row
    at nautilus-bookmarks-window.c line 301
  • #8 get_selected_bookmark
    at nautilus-bookmarks-window.c line 291
  • #9 on_selection_changed
    at nautilus-bookmarks-window.c line 497
  • #10 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #11 g_closure_invoke
    at gclosure.c line 437
  • #12 signal_emit_unlocked_R
    at gsignal.c line 2341
  • #13 g_signal_emit_valist
    at gsignal.c line 2100
  • #14 g_signal_emit_by_name
    at gsignal.c line 2168
  • #15 gtk_tree_view_row_deleted
    at gtktreeview.c line 5971
  • #16 g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #17 g_closure_invoke
    at gclosure.c line 437
  • #18 signal_emit_unlocked_R
    at gsignal.c line 2341
  • #19 g_signal_emit_valist
    at gsignal.c line 2100
  • #20 g_signal_emit_by_name
    at gsignal.c line 2168
  • #21 gtk_tree_model_row_deleted
    at gtktreemodel.c line 1139
  • #22 gtk_list_store_remove
    at gtkliststore.c line 999
  • #23 gtk_list_store_drag_data_delete
    at gtkliststore.c line 1354
  • #24 gtk_tree_drag_source_drag_data_delete
    at gtktreednd.c line 124
  • #25 gtk_tree_view_drag_data_delete
    at gtktreeview.c line 4869
  • #26 g_cclosure_marshal_VOID__OBJECT
    at gmarshal.c line 636
  • #27 g_type_class_meta_marshal
    at gclosure.c line 514
  • #28 g_closure_invoke
    at gclosure.c line 437
  • #29 signal_emit_unlocked_R
    at gsignal.c line 2379
  • #30 g_signal_emit_valist
    at gsignal.c line 2100
  • #31 gtk_signal_emit_by_name
    at gtksignal.c line 374
  • #32 gtk_drag_selection_get
    at gtkdnd.c line 2778
  • #33 _gtk_marshal_VOID__BOXED_UINT_UINT
    at gtkmarshalers.c line 1046
  • #34 g_closure_invoke
    at gclosure.c line 437
  • #35 signal_emit_unlocked_R
    at gsignal.c line 2341
  • #36 g_signal_emit_valist
    at gsignal.c line 2100
  • #37 gtk_signal_emit_by_name
    at gtksignal.c line 374
  • #38 gtk_selection_invoke_handler
    at gtkselection.c line 1698
  • #39 gtk_selection_convert
    at gtkselection.c line 667
  • #40 gtk_drag_finish
    at gtkdnd.c line 696
  • #41 gtk_tree_view_drag_data_received
    at gtktreeview.c line 5097
  • #42 _gtk_marshal_VOID__OBJECT_INT_INT_BOXED_UINT_UINT
    at gtkmarshalers.c line 1556
  • #43 g_type_class_meta_marshal
    at gclosure.c line 514
  • #44 g_closure_invoke
    at gclosure.c line 437
  • #45 signal_emit_unlocked_R
    at gsignal.c line 2379
  • #46 g_signal_emit_valist
    at gsignal.c line 2100
  • #47 gtk_signal_emit_by_name
    at gtksignal.c line 374
  • #48 gtk_drag_selection_received
    at gtkdnd.c line 1181
  • #49 _gtk_marshal_VOID__BOXED_UINT
    at gtkmarshalers.c line 969
  • #50 g_closure_invoke
    at gclosure.c line 437
  • #51 signal_emit_unlocked_R
    at gsignal.c line 2341
  • #52 g_signal_emit_valist
    at gsignal.c line 2100
  • #53 gtk_signal_emit_by_name
    at gtksignal.c line 374
  • #54 gtk_selection_retrieval_report

------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-05-06 19:05 -------

Unknown version 1.1.x in product nautilus. Setting version to the default, "unspecified".
Reassigning to the default owner of the component, nautilus-maint@bugzilla.gnome.org.

Comment 1 Heath Harrelson 2002-05-07 13:34:36 UTC
Confirming, etc.
Comment 2 Damon Chaplin 2002-05-17 19:45:12 UTC
The crash is because there is no selected item after the drag, and
nautilus fails an assertion. Whether GtkTreeView should make sure the
item is selected when it is moved to its new location I don't know.

I can fix the crash, but DnD of the bookmarks basically hasn't been
ported to GNOME 2 yet. on_row_move() is ifdef'ed out.
And to do this may require fairly big changes since GtkTreeView
doesn't provide a 'row_move' signal as GtkCList did.

I'll fix this next week.
Comment 3 Damon Chaplin 2002-05-28 18:10:17 UTC
Created attachment 8791 [details] [review]
Patch to fix it.
Comment 4 Alexander Larsson 2002-05-30 04:23:35 UTC
Wow. The original code is just so mind-boggingly wrong i get tired
just looking at it.

The whole syncing the lists is just evil, it should clearly have a
model based on NautilusBookmarksList. And if it had to do it this way,
why not store just a pointer to the bookmark object in the list and
then use gtk_tree_view_column_set_cell_data_func() to get the data
from the object. *sigh*

Anyway. Given the general evilness of the whole thing i think your
patch is ok to check in. It's not more evil than what is already
there, it cleans some stuff up, and if fixes bugs. go damon!
Comment 5 Damon Chaplin 2002-05-30 19:24:15 UTC
Patch committed. I agree using its own model would be best.
Comment 6 Manuel Clos 2002-06-10 00:39:44 UTC
I checked out gnome cvs head today (9/6/2002) and I got a crash,
please see bug 84697 for the stack trace.
Comment 7 Manuel Clos 2002-06-10 00:57:59 UTC
Sorry to spam you, but I got a second crash. I have confirmed the bug
84697 and attached the backtrace.

I got a third crash, so tell me if there is need for more backtraces.
Comment 8 Luis Villa 2002-06-11 15:08:25 UTC
Closing; bug 84697 is sufficient.