GNOME Bugzilla – Bug 75387
Crash when pressing ESC key while browse icons window is opening
Last modified: 2009-08-15 18:40:50 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
+ Trace 19431
Crash of the nautilus application itself is not proper. Changing priority to 'High'.
Definitely shouldn't happen :/ cc'ing myself.
*** Bug 75288 has been marked as a duplicate of this bug. ***
Problem seems solved on the 30th from CVS. Changing resolution to fixed.
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
+ Trace 20132
Reopening, then.
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.
This was actually a bug in GnomeIconEntry. I fixed it yesterday.
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!)
I can still reproduce with a build from the 25th; I'm going to disagree with Havoc and say crashes/stability are important.
Created attachment 8292 [details] [review] Patch to eel to fix bug.
Created attachment 8293 [details] [review] Tiny patch to nautilus to handle the dialog being returned as NULL.
Added PATCH & sun_patches keywords. OK to commit patches? I can't crash it any more.
> + 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.
thanks. committed (without the 'if'!)
*** Bug 81151 has been marked as a duplicate of this bug. ***
Verified. Closing. Thanks.