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 684308 - Crash when quickly closing a window while loading
Crash when quickly closing a window while loading
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: Crashers
3.5.x
Other Linux
: Normal normal
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-09-18 16:51 UTC by Cosimo Cecchi
Modified: 2012-09-18 17:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
view: don't NULL the slot until the end of destroy (1.19 KB, patch)
2012-09-18 16:52 UTC, Cosimo Cecchi
committed Details | Review

Description Cosimo Cecchi 2012-09-18 16:51:06 UTC
- open Nautilus
- as soon as the window appears, press Ctrl+W immediately
- crash


(gdb) bt
  • #0 __GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 63
  • #1 __GI_abort
    at abort.c line 90
  • #2 g_assertion_message
    at gtestutils.c line 1877
  • #3 g_assertion_message_expr
  • #4 nautilus_window_slot_get_window
    at nautilus-window-slot.c line 528
  • #5 nautilus_view_get_window
    at nautilus-view.c line 914
  • #6 done_loading
    at nautilus-view.c line 3046
  • #7 nautilus_view_stop_loading
    at nautilus-view.c line 9395
  • #8 nautilus_view_destroy
    at nautilus-view.c line 2743
  • #9 g_closure_invoke
    at gclosure.c line 777
  • #10 signal_emit_unlocked_R
    at gsignal.c line 3667
  • #11 g_signal_emit_valist
    at gsignal.c line 3300
  • #12 g_signal_emit
    at gsignal.c line 3356
  • #13 gtk_widget_dispose
    at gtkwidget.c line 10265
  • #14 nautilus_list_view_dispose
    at nautilus-list-view.c line 2796
  • #15 g_object_run_dispose
    at gobject.c line 1061
  • #16 gtk_widget_destroy
    at gtkwidget.c line 3974
  • #17 nautilus_window_slot_dispose
    at nautilus-window-slot.c line 399
  • #18 g_object_unref
    at gobject.c line 2986
  • #19 g_cclosure_marshal_VOID__OBJECTv
    at gmarshal.c line 1316
  • #20 _g_closure_invoke_va
    at gclosure.c line 840
  • #21 g_signal_emit_valist
    at gsignal.c line 3211
  • #22 g_signal_emit
    at gsignal.c line 3356
  • #23 gtk_container_remove
    at gtkcontainer.c line 1546
  • #24 close_slot
    at nautilus-window.c line 327
  • #25 nautilus_window_slot_close
    at nautilus-window.c line 667
  • #26 action_close_window_slot_callback
    at nautilus-window-menus.c line 79
  • #27 g_closure_invoke
    at gclosure.c line 777
  • #28 signal_emit_unlocked_R
    at gsignal.c line 3551
  • #29 g_signal_emit_valist
    at gsignal.c line 3300
  • #30 g_signal_emit
    at gsignal.c line 3356
  • #31 _gtk_action_emit_activate
    at gtkaction.c line 801
  • #32 closure_accel_activate
    at gtkaction.c line 1638
  • #33 g_closure_invoke
    at gclosure.c line 777
  • #34 signal_emit_unlocked_R
    at gsignal.c line 3551
  • #35 g_signal_emit_valist
    at gsignal.c line 3310
  • #36 g_signal_emit
    at gsignal.c line 3356
  • #37 gtk_accel_group_activate
    at gtkaccelgroup.c line 914
  • #38 gtk_accel_groups_activate
    at gtkaccelgroup.c line 952
  • #39 gtk_window_activate_key
    at gtkwindow.c line 9518
  • #40 gtk_window_key_press_event
    at gtkwindow.c line 6100
  • #41 nautilus_window_key_press_event
    at nautilus-window.c line 1545
  • #42 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #43 _g_closure_invoke_va
    at gclosure.c line 840
  • #44 g_signal_emit_valist
    at gsignal.c line 3211
  • #45 g_signal_emit
    at gsignal.c line 3356
  • #46 gtk_widget_event_internal
    at gtkwidget.c line 6294
  • #47 gtk_widget_event
    at gtkwidget.c line 5951
  • #48 propagate_event
    at gtkmain.c line 2489
  • #49 gtk_main_do_event
    at gtkmain.c line 1723
  • #50 gdk_event_source_dispatch
    at gdkeventsource.c line 358
  • #51 g_main_dispatch
    at gmain.c line 2715
  • #52 g_main_context_dispatch
    at gmain.c line 3219
  • #53 g_main_context_iterate
    at gmain.c line 3290
  • #54 g_main_context_iteration
    at gmain.c line 3351
  • #55 g_application_run
    at gapplication.c line 1620
  • #56 main
    at nautilus-main.c line 103

Comment 1 Cosimo Cecchi 2012-09-18 16:52:08 UTC
Created attachment 224646 [details] [review]
view: don't NULL the slot until the end of destroy

Since some of the calls we make (e.g. nautilus_view_stop_loading) might
access the slot, causing a segfault.
Comment 2 Cosimo Cecchi 2012-09-18 17:03:16 UTC
Attachment 224646 [details] pushed as 2234c4a - view: don't NULL the slot until the end of destroy

Pushed after r-t approval.