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 119407 - Nautilus crash when click on Back after view failure
Nautilus crash when click on Back after view failure
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: File and Folder Operations
2.2.x
Other other
: High normal
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
: 108313 114027 120286 125550 128658 130704 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2003-08-08 05:08 UTC by Narayana Pattipati
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Stack trace of nautilus crash (12.66 KB, text/plain)
2003-08-08 05:13 UTC, Narayana Pattipati
  Details
proposed patch (471 bytes, patch)
2003-08-08 05:25 UTC, Narayana Pattipati
none Details | Review

Description Narayana Pattipati 2003-08-08 05:08:22 UTC
This is happening on nautilus 2.2 running on SUSE linux. I did not observe
it in 2.4 though.

When there is a problem in viewing a remote file, nautilus throws up
appropriate error. Now, if user clicks on Back or Up of nautilus
navigation bar, Nautilus crashes.

To reproduce:
1. Open a nautilus window. On the location bar, give partial syntax of ftp
like "ftp://<server-ip-address>. 
2. Now nautilus prompts for user id and password. 
3. After provind userid/password, nautilus shows the contents of the
server. 
4. Browse to a directory which has a .txt file. Double click on the file.
Nautilus throws up a view failure error because, it does not have necessary
permissions on the file. 

5. Now, click on Back/Up of the control bar. Nautilus crashes. 

Stack attached.
Comment 1 Narayana Pattipati 2003-08-08 05:13:50 UTC
Created attachment 19023 [details]
Stack trace of nautilus crash
Comment 2 Narayana Pattipati 2003-08-08 05:23:02 UTC
When user tries to navigate to a different location after encountering
a view error, nautilus tries to set current bookmark scroll positions.
In that process, it tries to get the current position by passing
content_view member of NautilusWindow to
nautilus_view_frame_get_first_visible_file(). But since there was a
problem in the earlier operation of loading, content_view member is
NULL and nautilus crashes upon further access of the members of the
structure.

So, make sure that content_view is not NULL before accessing it.

I will attach a small patch.
Comment 3 Narayana Pattipati 2003-08-08 05:25:30 UTC
Created attachment 19024 [details] [review]
proposed patch
Comment 4 Elijah Newren 2003-08-08 16:38:53 UTC
Setting priority to high because of the patch.
Comment 5 Alexander Larsson 2003-09-18 11:08:32 UTC
Thanks for the patch, i fixed it in cvs in a slightly different way.
Comment 6 Alexander Larsson 2003-09-18 12:52:45 UTC
*** Bug 120286 has been marked as a duplicate of this bug. ***
Comment 7 Alexander Larsson 2003-09-18 13:04:35 UTC
*** Bug 114027 has been marked as a duplicate of this bug. ***
Comment 8 Alexander Larsson 2003-09-18 13:05:37 UTC
*** Bug 108313 has been marked as a duplicate of this bug. ***
Comment 9 Vincent Untz 2003-10-29 14:52:41 UTC
*** Bug 125550 has been marked as a duplicate of this bug. ***
Comment 10 Martin Wehner 2003-12-07 17:21:29 UTC
*** Bug 128658 has been marked as a duplicate of this bug. ***
Comment 11 Matthew Gatto 2004-01-06 22:39:07 UTC
pasting stack trace inline to make searching easier:

(gdb) where
  • #0 wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    from /lib/i686/libpthread.so.0
  • #3 libgnomeui_module_info_get
    from /usr//lib/libgnomeui-2.so.0
  • #4 pthread_sighandler
    from /lib/i686/libpthread.so.0
  • #5 <signal handler called>
  • #6 nautilus_view_frame_get_first_visible_file
    at nautilus-view-frame.c line 1093
  • #7 begin_location_change
    at nautilus-window-manage-views.c line 1550
  • #8 nautilus_window_back_or_forward
    at nautilus-window-manage-views.c line 2267
  • #9 nautilus_window_go_back
    at nautilus-window.c line 1588
  • #10 marshal_VOID__USER_DATA_STRING
    from /usr//lib/libbonoboui-2.so.0
  • #11 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #12 bonobo_closure_invoke_va_list
    from /usr//lib/libbonobo-2.so.0
  • #13 bonobo_closure_invoke
    from /usr//lib/libbonobo-2.so.0
  • #14 impl_Bonobo_UIComponent_execVerb
    from /usr//lib/libbonoboui-2.so.0
  • #15 Bonobo_UIComponent_execVerb
    from /usr//lib/libbonobo-2.so.0
  • #16 real_exec_verb
    from /usr//lib/libbonoboui-2.so.0
  • #17 impl_emit_verb_on
    from /usr//lib/libbonoboui-2.so.0
  • #18 g_cclosure_marshal_VOID__POINTER
    from /usr//lib/libgobject-2.0.so.0
  • #19 g_type_class_meta_marshal
    from /usr//lib/libgobject-2.0.so.0
  • #20 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #21 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #23 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #24 bonobo_ui_engine_emit_verb_on_w
    from /usr//lib/libbonoboui-2.so.0
  • #25 exec_verb_cb
    from /usr//lib/libbonoboui-2.so.0
  • #26 g_cclosure_marshal_VOID__VOID
    from /usr//lib/libgobject-2.0.so.0
  • #27 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #28 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #29 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #30 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #31 bonobo_ui_toolbar_item_activate
    from /usr//lib/libbonoboui-2.so.0
  • #32 button_widget_clicked_cb
    from /usr//lib/libbonoboui-2.so.0
  • #33 g_cclosure_marshal_VOID__VOID
    from /usr//lib/libgobject-2.0.so.0
  • #34 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #35 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #36 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #37 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #38 gtk_button_clicked
    from /usr//lib/libgtk-x11-2.0.so.0
  • #39 gtk_button_get_relief
    from /usr//lib/libgtk-x11-2.0.so.0
  • #40 g_cclosure_marshal_VOID__VOID
    from /usr//lib/libgobject-2.0.so.0
  • #41 g_type_class_meta_marshal
    from /usr//lib/libgobject-2.0.so.0
  • #42 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #43 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #44 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #45 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #46 gtk_button_released
    from /usr//lib/libgtk-x11-2.0.so.0
  • #47 gtk_button_get_relief
    from /usr//lib/libgtk-x11-2.0.so.0
  • #48 gtk_propagate_event
    from /usr//lib/libgtk-x11-2.0.so.0
  • #49 g_type_class_meta_marshal
    from /usr//lib/libgobject-2.0.so.0
  • #50 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #51 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #52 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #53 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #54 gtk_widget_send_expose
    from /usr//lib/libgtk-x11-2.0.so.0
  • #55 gtk_propagate_event
    from /usr//lib/libgtk-x11-2.0.so.0
  • #56 gtk_main_do_event
    from /usr//lib/libgtk-x11-2.0.so.0
  • #57 gdk_add_client_message_filter
    from /usr//lib/libgdk-x11-2.0.so.0
  • #58 g_main_dispatch
    from /usr//lib/libglib-2.0.so.0
  • #59 g_main_context_dispatch
    from /usr//lib/libglib-2.0.so.0
  • #60 g_main_context_iterate
    from /usr//lib/libglib-2.0.so.0
  • #61 g_main_loop_run
    from /usr//lib/libglib-2.0.so.0
  • #62 gtk_main
    from /usr//lib/libgtk-x11-2.0.so.0
  • #63 main
    at nautilus-main.c line 280
  • #64 __libc_start_main
    from /lib/i686/libc.so.6
  • #0 wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    from /lib/i686/libpthread.so.0
  • #3 libgnomeui_module_info_get
    from /usr//lib/libgnomeui-2.so.0
  • #4 pthread_sighandler
    from /lib/i686/libpthread.so.0
  • #5 <signal handler called>
  • #6 nautilus_view_frame_get_first_visible_file
    at nautilus-view-frame.c line 1093
  • #7 begin_location_change
    at nautilus-window-manage-views.c line 1550
  • #8 nautilus_window_back_or_forward
    at nautilus-window-manage-views.c line 2267
  • #9 nautilus_window_go_back
    at nautilus-window.c line 1588
  • #6 nautilus_view_frame_get_first_visible_file
    at nautilus-view-frame.c line 1093
  • #0 view_frame_failed
    at nautilus-view-frame.c line 413
  • #1 g_cclosure_marshal_VOID__VOID
    from /usr//lib/libgobject-2.0.so.0
  • #2 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #3 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #4 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #5 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #6 bonobo_object_destroy
    from /usr//lib/libbonobo-2.so.0
  • #7 bonobo_object_unref
    from /usr//lib/libbonobo-2.so.0
  • #8 bonobo_socket_set_control_frame
    from /usr//lib/libbonoboui-2.so.0
  • #9 bonobo_socket_dispose
    from /usr//lib/libbonoboui-2.so.0
  • #10 g_object_run_dispose
    from /usr//lib/libgobject-2.0.so.0
  • #11 gtk_object_destroy
    at gtkobject.c line 361
  • #12 gtk_widget_destroy
    at gtkwidget.c line 1628
  • #13 gtk_bin_forall
    at gtkbin.c line 164
  • #14 gtk_container_foreach
    at gtkcontainer.c line 1280
  • #15 gtk_container_destroy
    at gtkcontainer.c line 826
  • #16 nautilus_view_frame_destroy
  • #17 g_cclosure_marshal_VOID__VOID
    from /usr//lib/libgobject-2.0.so.0
  • #18 g_type_class_meta_marshal
    from /usr//lib/libgobject-2.0.so.0
  • #19 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #20 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #21 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #22 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #23 gtk_object_dispose
    at gtkobject.c line 376
  • #24 gtk_widget_dispose
    at gtkwidget.c line 5987
  • #25 g_object_run_dispose
    from /usr//lib/libgobject-2.0.so.0
  • #26 gtk_object_destroy
    at gtkobject.c line 361
  • #27 nautilus_window_set_content_view_widget
    at nautilus-window.c line 1924
  • #28 location_has_really_changed
    at nautilus-window-manage-views.c line 691
  • #29 g_cclosure_marshal_VOID__VOID
    from /usr//lib/libgobject-2.0.so.0
  • #30 g_closure_invoke
    from /usr//lib/libgobject-2.0.so.0
  • #31 signal_emit_unlocked_R
    from /usr//lib/libgobject-2.0.so.0
  • #32 g_signal_emit_valist
    from /usr//lib/libgobject-2.0.so.0
  • #33 g_signal_emit
    from /usr//lib/libgobject-2.0.so.0
  • #34 view_frame_underway
    at nautilus-view-frame.c line 340
  • #35 execute_queued_functions
    at nautilus-idle-queue.c line 66
  • #36 g_idle_dispatch
    from /usr//lib/libglib-2.0.so.0
  • #37 g_main_dispatch
    from /usr//lib/libglib-2.0.so.0
  • #38 g_main_context_dispatch
    from /usr//lib/libglib-2.0.so.0
  • #39 g_main_context_iterate
    from /usr//lib/libglib-2.0.so.0
  • #40 g_main_loop_run
    from /usr//lib/libglib-2.0.so.0
  • #41 gtk_main
    at gtkmain.c line 1093
  • #42 main
    at nautilus-main.c line 280
  • #43 __libc_start_main
    from /lib/i686/libc.so.6



1   breakpoint     keep y   0x4004ee65 in vfs_authentication_callback
                                       at nautilus-authn-manager.c:246
2   breakpoint     keep y   0x4004e908 in construct_password_dialog
                                       at nautilus-authn-manager.c:60
        breakpoint already hit 5 times
3   breakpoint     keep y   0x4004eae8 in
authentication_dialog_button_clicked
                                       at nautilus-authn-manager.c:141
        breakpoint already hit 5 times
4   breakpoint     keep y   0x0807ef48 in determined_initial_view_callback
                                       at
nautilus-window-manage-views.c:1284
        breakpoint already hit 9 times
5   breakpoint     keep y   0x0807a318 in view_frame_activated
                                       at nautilus-view-frame.c:278
        breakpoint already hit 7 times
6   breakpoint     keep y   0x0808097b in view_loaded_callback
                                       at
nautilus-window-manage-views.c:2146
        breakpoint already hit 7 times
7   breakpoint     keep y   0x0807b50b in
nautilus_view_frame_load_location
                                       at nautilus-view-frame.c:833
        breakpoint already hit 6 times
9   breakpoint     keep y   0x0807a828 in view_frame_failed
                                       at nautilus-view-frame.c:413

Comment 12 Matthew Gatto 2004-01-06 22:40:20 UTC
*** Bug 130704 has been marked as a duplicate of this bug. ***