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 169917 - Cancelling password authentication during ftp:// connection results in nautilus crash
Cancelling password authentication during ftp:// connection results in nautil...
Status: RESOLVED DUPLICATE of bug 134985
Product: libgnomeui
Classification: Deprecated
Component: general
CVS HEAD
Other Linux
: Normal normal
: future
Assigned To: libgnomeui maintainers
libgnomeui maintainers
: 171799 302375 303740 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-03-11 09:22 UTC by Balamurali Viswanathan
Modified: 2005-05-11 01:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch for this problem (413 bytes, patch)
2005-03-11 09:48 UTC, Balamurali Viswanathan
none Details | Review
Patch for this problem (1.29 KB, patch)
2005-03-15 14:15 UTC, Balamurali Viswanathan
none Details | Review

Description Balamurali Viswanathan 2005-03-11 09:22:18 UTC
In JDS 3 (libgnomeui - 2.6.2, nautilus - 2.6.1)

Steps to reproduce

1. Open a nautilus window
2. Type ftp://ff:ff:ff:ff (a valid ip address) and click enter
3. An authentication dialog comes up. Click on Esc
4. An error dialog comes up, click on the ok button
5. repeat steps 2,3,4 for 3 to 5 times nautilus crashes after step 3.

(In the current head sources, clicking on Esc when the authentication dialog
comes up, the authentication dialog is presented again, clicking on Esc for
around 10 to 15 times makes nautilus crash).

This crash does not happen if the authentication dialog is cancelled by clicking
on the cancel button.

Below is the stack trace
  • #0 ??
  • #1 ??
  • #2 ??
  • #3 ??
  • #4 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #5 libgnomeui_segv_handle
    at gnome-ui-init.c line 737
  • #6 <signal handler called>
  • #7 g_type_check_instance_is_a
    at gtype.c line 3126
  • #8 gtk_container_foreach
    at gtkcontainer.c line 1285
  • #9 gtk_container_get_children
    at gtkcontainer.c line 1376
  • #10 gtk_dialog_close
    at gtkdialog.c line 378
  • #11 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #12 g_type_class_meta_marshal
    at gclosure.c line 514
  • #13 g_closure_invoke
    at gclosure.c line 437
  • #14 signal_emit_unlocked_R
    at gsignal.c line 2516
  • #15 g_signal_emitv
    at gsignal.c line 2149
  • #16 gtk_binding_entry_activate
    at gtkbindings.c line 525
  • #17 binding_match_activate
    at gtkbindings.c line 927
  • #18 gtk_bindings_activate_list
    at gtkbindings.c line 1063
  • #19 gtk_bindings_activate_event
    at gtkbindings.c line 1138
  • #20 gtk_widget_real_key_press_event
    at gtkwidget.c line 3308
  • #21 gtk_window_key_press_event
    at gtkwindow.c line 4250
  • #22 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 82
  • #23 g_type_class_meta_marshal
    at gclosure.c line 514
  • #24 g_closure_invoke
    at gclosure.c line 437
  • #25 signal_emit_unlocked_R
    at gsignal.c line 2516
  • #26 g_signal_emit_valist
    at gsignal.c line 2247
  • #27 g_signal_emit
    at gsignal.c line 2281
  • #28 gtk_widget_event_internal
    at gtkwidget.c line 3564
  • #29 gtk_propagate_event
    at gtkmain.c line 2319
  • #30 gtk_main_do_event
    at gtkmain.c line 1583
  • #31 gdk_event_dispatch
    at gdkevents-x11.c line 2186
  • #32 g_main_context_dispatch
    at gmain.c line 1942
  • #33 g_main_context_iterate
    at gmain.c line 2573
  • #34 g_main_loop_run
    at gmain.c line 2777
  • #35 gtk_main
    at gtkmain.c line 1173
  • #36 main
    at nautilus-main.c line 355

Comment 1 Balamurali Viswanathan 2005-03-11 09:48:58 UTC
Created attachment 38542 [details] [review]
patch for this problem

Since clicking on Esc button will close(destroy) the dialog, if it has a cancel
button. I guess there is no need to add a user level call back to just destroy
the dialog. The patch just removes the gtk_wdiget_destroy () in the "close"
signal callback. Thanks
Comment 2 Balamurali Viswanathan 2005-03-15 14:15:43 UTC
Created attachment 38751 [details] [review]
Patch for this problem

With the above steps to reproduce the problem clicking on Esc either crashes
nautilus or gives the following critical message 

(nautilus:30168): Gtk-CRITICAL **: file gtkcontainer.c: line 1285
(gtk_container_foreach): assertion `GTK_IS_CONTAINER (container)' failed

For gtk dialogs, the "close" signal handler(gtk_dialog_canel) does a
dialog_has_cancel(). This is done to simulate a delete_event in case there is a
Cancel button in the dialog.
									       

In libgnomeui/gnome-authentication-manager.c, the authentication dialog is
connected to the close signal and in the handler of the close signal
gtk_widget_destroy () is done. Since the widget is destroyed before the
dialog_has_cancel () function is called, the crash happens. Removing the
g_signal_connect of the close signal fixes the issue.

Attaching a new patch.
Comment 3 Balamurali Viswanathan 2005-03-15 14:19:12 UTC
In Head dialog_has_cancel() is replaced by dialog_find_button (). Attaching the
stack trace got with the recent sources from HEAD.

  • #0 _dl_sysinfo_int80
    from /lib/ld-linux.so.2
  • #1 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 741
  • #3 <signal handler called>
  • #4 IA__g_type_check_instance_is_a
    at gtype.c line 3127
  • #5 IA__gtk_container_foreach
    at gtkcontainer.c line 1286
  • #6 IA__gtk_container_get_children
    at gtkcontainer.c line 1377
  • #7 dialog_find_button
    at gtkdialog.c line 397
  • #8 gtk_dialog_close
    at gtkdialog.c line 423
  • #9 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #10 g_type_class_meta_marshal
    at gclosure.c line 514
  • #11 IA__g_closure_invoke
    at gclosure.c line 437
  • #12 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #13 IA__g_signal_emitv
    at gsignal.c line 2156
  • #14 gtk_binding_entry_activate
    at gtkbindings.c line 526
  • #15 binding_match_activate
    at gtkbindings.c line 928
  • #16 gtk_bindings_activate_list
    at gtkbindings.c line 1064
  • #17 IA__gtk_bindings_activate_event
    at gtkbindings.c line 1139
  • #18 gtk_widget_real_key_press_event
    at gtkwidget.c line 3370
  • #19 gtk_window_key_press_event
    at gtkwindow.c line 4459
  • #20 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #21 g_type_class_meta_marshal
    at gclosure.c line 514
  • #22 IA__g_closure_invoke
    at gclosure.c line 437
  • #23 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #24 IA__g_signal_emit_valist
    at gsignal.c line 2254
  • #25 IA__g_signal_emit
    at gsignal.c line 2288
  • #26 gtk_widget_event_internal
    at gtkwidget.c line 3626
  • #27 IA__gtk_widget_event
    at gtkwidget.c line 3432
  • #28 IA__gtk_propagate_event
    at gtkmain.c line 2119
  • #29 IA__gtk_main_do_event
    at gtkmain.c line 1383
  • #30 gdk_event_dispatch
    at gdkevents-x11.c line 2220
  • #31 g_main_dispatch
    at gmain.c line 1947
  • #32 IA__g_main_context_dispatch
    at gmain.c line 2497
  • #33 g_main_context_iterate
    at gmain.c line 2578
  • #34 IA__g_main_loop_run
    at gmain.c line 2782
  • #35 IA__gtk_main
    at gtkmain.c line 963
  • #36 main
    at nautilus-main.c line 369

Please review the patch and give your comments. Thanks
Comment 4 Sebastien Bacher 2005-03-27 22:17:30 UTC
*** Bug 171799 has been marked as a duplicate of this bug. ***
Comment 5 Elijah Newren 2005-04-30 00:08:41 UTC
*** Bug 302375 has been marked as a duplicate of this bug. ***
Comment 6 Martin Wehner 2005-05-10 19:00:38 UTC
This is a dup of bug 134985 (or vice versa). We even came up with the same patch :)
Comment 7 Kjartan Maraas 2005-05-10 21:11:28 UTC
Thanks for the patch. Marking this as the dupe since the other one is older and
has more dupes already. 

*** This bug has been marked as a duplicate of 134985 ***
Comment 8 Elijah Newren 2005-05-11 01:52:40 UTC
*** Bug 303740 has been marked as a duplicate of this bug. ***