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 75387 - Crash when pressing ESC key while browse icons window is opening
Crash when pressing ESC key while browse icons window is opening
Status: VERIFIED FIXED
Product: nautilus
Classification: Core
Component: Views: Icon View
1.1.x
Other Linux
: High critical
: ---
Assigned To: Darin Adler
Nautilus Maintainers
: 75288 81151 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-03-19 05:42 UTC by Anand
Modified: 2009-08-15 18:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to eel to fix bug. (1.50 KB, patch)
2002-05-08 17:35 UTC, Damon Chaplin
none Details | Review
Tiny patch to nautilus to handle the dialog being returned as NULL. (649 bytes, patch)
2002-05-08 17:38 UTC, Damon Chaplin
none Details | Review

Description Anand 2002-03-19 05:42:32 UTC
Gnome 2.0 was built from the CVS source on 17th Mar.

Description:
When the ESC key is pressed while the 'change icons' window is coming up, 
crashes nautilus.

Steps to reproduce:
1) Click on a file / folder and choose 'Show properties'.
2) Click on the 'Choose Custom Icon' 
3) Before all the icons are completely loaded (this step is very 
important), hit the ESC key.
4) Nautilus crashes.

Expected Result:
The browse for icons operation should be canceled and Nautilus should not 
crash

Repeatability:
Almost always (Because, at times, one needs to do the open window-ESC 
operation more than once (3-4 times) to get the crash)

Debugging info:
Stack trace is attached below.

[New Thread 1024 (LWP 979)]
[New Thread 2049 (LWP 980)]
[New Thread 1026 (LWP 981)]
[New Thread 2051 (LWP 982)]
0x40bf2519 in __wait4 () 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
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 593
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_type_check_instance
    at gtype.c line 2671
  • #7 g_signal_connect_data
    at gsignal.c line 1600
  • #8 eel_gnome_icon_selector_new
    at eel-gnome-extensions.c line 822
  • #9 select_image_button_callback
    at fm-properties-window.c line 2471
  • #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 2340
  • #13 g_signal_emit_valist
    at gsignal.c line 2099
  • #14 gtk_signal_emit
    at gtksignal.c line 355
  • #15 gtk_button_clicked
    at gtkbutton.c line 549
  • #16 gtk_button_finish_activate
    at gtkbutton.c line 1096
  • #17 gtk_button_key_release
    at gtkbutton.c line 968
  • #18 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 82
  • #19 g_type_class_meta_marshal
    at gclosure.c line 514
  • #20 g_closure_invoke
    at gclosure.c line 437
  • #21 signal_emit_unlocked_R
    at gsignal.c line 2378
  • #22 g_signal_emit_valist
    at gsignal.c line 2109
  • #23 gtk_signal_emit
    at gtksignal.c line 355
  • #24 gtk_widget_event_internal
    at gtkwidget.c line 3076
  • #25 gtk_widget_event
    at gtkwidget.c line 2937
  • #26 gtk_propagate_event
    at gtkmain.c line 2041
  • #27 gtk_main_do_event
    at gtkmain.c line 1316
  • #28 gdk_event_dispatch
    at gdkevents-x11.c line 1752
  • #29 g_main_dispatch
    at gmain.c line 1617
  • #30 g_main_context_dispatch
    at gmain.c line 2161
  • #31 g_main_context_iterate
    at gmain.c line 2242
  • #32 g_main_loop_run
    at gmain.c line 2462
  • #33 gtk_main
    at gtkmain.c line 915
  • #34 main
    at nautilus-main.c line 265
  • #35 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 129
  • #0 __wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui-init.c line 593
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_type_check_instance
    at gtype.c line 2671
  • #7 g_signal_connect_data
    at gsignal.c line 1600

Comment 1 Anand 2002-03-19 06:14:55 UTC
Crash of the nautilus application itself is not proper. Changing 
priority to 'High'.
Comment 2 Luis Villa 2002-03-27 22:45:39 UTC
Definitely shouldn't happen :/ cc'ing myself.
Comment 3 Luis Villa 2002-03-30 20:07:56 UTC
*** Bug 75288 has been marked as a duplicate of this bug. ***
Comment 4 Anand 2002-03-31 07:28:15 UTC
Problem seems solved on the 30th from CVS. Changing resolution to 
fixed.
Comment 5 Sekhar Reddy Pulukunta 2002-04-01 05:25:06 UTC
Please repoen the bug :
Build : 30th March 2002 in Red hat Linux 7.1 .


This is still exist in Linux, Solaris 9 32 and 64 .

Steps to reproduce:
1) Click on a file / folder and choose 'Show properties'.
2) Click on the 'Choose Custom Icon' 
3) Select Icon from the list .
4) Click on the 'Choose Custom Icon' 
5)Before all the icons are completely loaded (this step is very 
important), hit the ESC key.
4) Nautilus crashes.

Expected Result:
The browse for icons operation should be canceled and Nautilus should 
not  crash

Repeatability:
Almost always 

Stack Trace in Linux :

Severity: normal
Version:  1.1.11
Synopsis: fdsfsd
Class:    sw-bug

Distribution: Red Hat Linux release 7.1 (Seawolf)
System: Linux 2.4.2-2 i686 unknown
C library: glibc-2.2.2-10
C compiler: 2.96
glib: 1.2.9
GTK+: 1.2.9
ORBit: ORBit 0.5.7
gnome-libs: gnome-libs 1.2.8
libxml: 1.8.10
gnome-print: gnome-print-0.25-9
gnome-core: gnome-core 1.2.4

Debugging information:
[New Thread 1024 (LWP 1366)]
[New Thread 2049 (LWP 1368)]
[New Thread 1026 (LWP 1369)]
[New Thread 2051 (LWP 1370)]
[New Thread 3076 (LWP 1374)]
[New Thread 4101 (LWP 1375)]
0x40ce5519 in __wait4 () 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
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui- init.c line 593
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_type_check_instance
    at gtype.c line 2712
  • #7 g_signal_connect_data
    at gsignal.c line 1601
  • #8 eel_gnome_icon_selector_new
    at eel-gnome-extensions.c line 822
  • #9 select_image_button_callback
    at fm-properties-window.c line 2447
  • #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 gtk_signal_emit
    at gtksignal.c line 355
  • #15 gtk_button_clicked
    at gtkbutton.c line 549
  • #16 gtk_real_button_released
    at gtkbutton.c line 1038
  • #17 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #18 g_type_class_meta_marshal
    at gclosure.c line 514
  • #19 g_closure_invoke
    at gclosure.c line 437
  • #20 signal_emit_unlocked_R
    at gsignal.c line 2271
  • #21 g_signal_emit_valist
    at gsignal.c line 2100
  • #22 gtk_signal_emit
    at gtksignal.c line 355
  • #23 gtk_button_released
    at gtkbutton.c line 541
  • #24 gtk_button_button_release
    at gtkbutton.c line 954
  • #25 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 82
  • #26 g_type_class_meta_marshal
    at gclosure.c line 514
  • #27 g_closure_invoke
    at gclosure.c line 437
  • #28 signal_emit_unlocked_R
    at gsignal.c line 2379
  • #29 g_signal_emit_valist
    at gsignal.c line 2110
  • #30 gtk_signal_emit
    at gtksignal.c line 355
  • #31 gtk_widget_event_internal
    at gtkwidget.c line 3076
  • #32 gtk_widget_event
    at gtkwidget.c line 2937
  • #33 gtk_propagate_event
    at gtkmain.c line 2064
  • #34 gtk_main_do_event
    at gtkmain.c line 1313
  • #35 gdk_event_dispatch
    at gdkevents-x11.c line 1752
  • #36 g_main_dispatch
    at gmain.c line 1617
  • #37 g_main_context_dispatch
    at gmain.c line 2161
  • #38 g_main_context_iterate
    at gmain.c line 2242
  • #39 g_main_loop_run
    at gmain.c line 2462
  • #40 gtk_main
    at gtkmain.c line 912
  • #41 main
    at nautilus- main.c line 263
  • #42 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 129
  • #0 __wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    at wrapsyscall.c line 172
  • #3 libgnomeui_segv_handle
    at gnome-ui- init.c line 593
  • #4 pthread_sighandler
    at signals.c line 97
  • #5 <signal handler called>
  • #6 g_type_check_instance
    at gtype.c line 2712
  • #7 g_signal_connect_data
    at gsignal.c line 1601

Comment 6 Luis Villa 2002-04-01 23:51:52 UTC
Reopening, then.
Comment 7 Damon Chaplin 2002-04-23 19:07:36 UTC
gnome_icon_selection_show_icons() runs a main loop while it tries to
load the icons. If the dialog is closed here, then by the time eel
tries to connect a signal to it it is already destroyed.

Needs to connect signals before calling show_icons(), and maybe also
connect to "destroy" with gtk_widget_destroyed (dialog), so it returns
NULL if it is closed before loading all the icons.

Should also check that any callers can handle having NULL returned as
the dialog. I think none of them use the returned dialog.
Comment 8 Anders Carlsson 2002-04-23 22:34:34 UTC
This was actually a bug in GnomeIconEntry. I fixed it yesterday.
Comment 9 Damon Chaplin 2002-04-24 20:37:02 UTC
I don't think it uses a GnomeIconEntry in the folder properties dialog.
It uses its own 'Select Custom Icon...' button and creates its own
dialog with a GnomeFileEntry and a GnomeIconSelection (just like
GnomeIconEntry does).

A GnomeIconEntry is a button showing an icon, and when you click on it
it shows the dialog. (I had to look at Glade to check!)

So I'm not sure your patch would affect it. (I may be wrong!)
Comment 10 Luis Villa 2002-05-01 07:34:48 UTC
I can still reproduce with a build from the 25th; I'm going to
disagree with Havoc and say crashes/stability are important.
Comment 11 Damon Chaplin 2002-05-08 17:35:11 UTC
Created attachment 8292 [details] [review]
Patch to eel to fix bug.
Comment 12 Damon Chaplin 2002-05-08 17:38:51 UTC
Created attachment 8293 [details] [review]
Tiny patch to nautilus to handle the dialog being returned as NULL.
Comment 13 Damon Chaplin 2002-05-08 17:43:24 UTC
Added PATCH & sun_patches keywords.

OK to commit patches? I can't crash it any more.
Comment 14 Darin Adler 2002-05-08 19:59:10 UTC
> +	if (dialog)
> +		eel_remove_weak_pointer (&dialog);

You don't need the if here. The eel_remove_weak_pointer is 
smart about this case.

The patches look fine, feel free to check in.
Comment 15 Damon Chaplin 2002-05-08 20:36:04 UTC
thanks. committed (without the 'if'!)
Comment 16 Damon Chaplin 2002-05-14 20:49:49 UTC
*** Bug 81151 has been marked as a duplicate of this bug. ***
Comment 17 Anand 2002-07-15 04:11:12 UTC
Verified. Closing. Thanks.