GNOME Bugzilla – Bug 406505
Resizing selection window in Import locks entire system w/ 100% CPU usage
Last modified: 2008-03-06 21:01:52 UTC
Steps to reproduce: 1. Click import, select a directory with photos (eg. I had 5 photos in my directory) 2. (SAVE YOUR WORK BEFORE TRYING THIS) After the thumbnails are generated, drag the slider between the file-selection pane and the image preview pane as far to the right as it will go. 3. System locks with 100% CPU usage. Hard reset probably required Stack trace: Starting new FSpot server Reloading item changed open uri = file:///home/goodmami/Photos/2007/01/28/img_6027.jpg open uri = file:///home/goodmami/Photos/2007/01/28/img_6027.jpg System.IO.FileNotFoundException: file:///home/goodmami/Photos/2007/01/28/img_6022.jpg at Gnome.Vfs.Vfs.ThrowException (System.String uri, Result result) [0x00000] at Gnome.Vfs.Vfs.ThrowException (Gnome.Vfs.Uri uri, Result result) [0x00000] at Gnome.Vfs.FileInfo..ctor (Gnome.Vfs.Uri uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri) [0x00000] at FSpot.ThumbnailGenerator.ThumbnailIsValid (Gdk.Pixbuf thumbnail, System.Uri uri) [0x00000] open uri = file:///home/goodmami/Photos/2007/01/28/img_6022.jpg System.IO.FileNotFoundException: Could not find uri "file:///home/goodmami/Photos/2007/01/28/img_6022.jpg". at Gnome.Vfs.VfsStream..ctor (System.String text_uri, FileMode mode, Boolean async) [0x00000] at Gnome.Vfs.VfsStream..ctor (System.String uri, FileMode mode) [0x00000] at (wrapper remoting-invoke-with-check) Gnome.Vfs.VfsStream:.ctor (string,System.IO.FileMode) at FSpot.ImageFile.Open () [0x00000] at FSpot.ImageFile.PixbufStream () [0x00000] at FSpot.ImageFile.Load (Int32 max_width, Int32 max_height) [0x00000] at PixbufLoader.ProcessRequest (.RequestItem request) [0x00000] at FSpot.ThumbnailGenerator.ProcessRequest (.RequestItem request) [0x00000] System.IO.FileNotFoundException: file:///home/goodmami/Photos/2007/01/28/img_6021.jpg at Gnome.Vfs.Vfs.ThrowException (System.String uri, Result result) [0x00000] at Gnome.Vfs.Vfs.ThrowException (Gnome.Vfs.Uri uri, Result result) [0x00000] at Gnome.Vfs.FileInfo..ctor (Gnome.Vfs.Uri uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri) [0x00000] at FSpot.ThumbnailGenerator.ThumbnailIsValid (Gdk.Pixbuf thumbnail, System.Uri uri) [0x00000] open uri = file:///home/goodmami/Photos/2007/01/28/img_6021.jpg System.IO.FileNotFoundException: Could not find uri "file:///home/goodmami/Photos/2007/01/28/img_6021.jpg". at Gnome.Vfs.VfsStream..ctor (System.String text_uri, FileMode mode, Boolean async) [0x00000] at Gnome.Vfs.VfsStream..ctor (System.String uri, FileMode mode) [0x00000] at (wrapper remoting-invoke-with-check) Gnome.Vfs.VfsStream:.ctor (string,System.IO.FileMode) at FSpot.ImageFile.Open () [0x00000] at FSpot.ImageFile.PixbufStream () [0x00000] at FSpot.ImageFile.Load (Int32 max_width, Int32 max_height) [0x00000] at PixbufLoader.ProcessRequest (.RequestItem request) [0x00000] at FSpot.ThumbnailGenerator.ProcessRequest (.RequestItem request) [0x00000] open uri = file:///home/goodmami/Photos/2007/01/28/img_6027.jpg open uri = file:///home/goodmami/Photos/2007/01/28/img_6027.jpg System.IO.FileNotFoundException: file:///home/goodmami/Photos/2007/01/28/img_6022.jpg at Gnome.Vfs.Vfs.ThrowException (System.String uri, Result result) [0x00000] at Gnome.Vfs.Vfs.ThrowException (Gnome.Vfs.Uri uri, Result result) [0x00000] at Gnome.Vfs.FileInfo..ctor (Gnome.Vfs.Uri uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri) [0x00000] at FSpot.ThumbnailGenerator.ThumbnailIsValid (Gdk.Pixbuf thumbnail, System.Uri uri) [0x00000] System.IO.FileNotFoundException: file:///home/goodmami/Photos/2007/01/28/img_6021.jpg at Gnome.Vfs.Vfs.ThrowException (System.String uri, Result result) [0x00000] at Gnome.Vfs.Vfs.ThrowException (Gnome.Vfs.Uri uri, Result result) [0x00000] at Gnome.Vfs.FileInfo..ctor (Gnome.Vfs.Uri uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri, FileInfoOptions options) [0x00000] at Gnome.Vfs.FileInfo..ctor (System.String uri) [0x00000] at FSpot.ThumbnailGenerator.ThumbnailIsValid (Gdk.Pixbuf thumbnail, System.Uri uri) [0x00000] open uri = file:///home/goodmami/Photos/2007/01/13/00007-1.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00007-1.jpg open uri = file:///home/goodmami/Photos/2007/1/13/00007.jpg open uri = file:///home/goodmami/Photos/2007/1/13/00007.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008-1.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008-1.jpg open uri = file:///home/goodmami/Photos/2007/1/13/00008.jpg open uri = file:///home/goodmami/Photos/2007/1/13/00008.jpg open uri = file:///home/goodmami/Photos/2007/01/28/img_6021.jpg System.IO.FileNotFoundException: Could not find uri "file:///home/goodmami/Photos/2007/01/28/img_6021.jpg". at Gnome.Vfs.VfsStream..ctor (System.String text_uri, FileMode mode, Boolean async) [0x00000] at Gnome.Vfs.VfsStream..ctor (System.String uri, FileMode mode) [0x00000] at (wrapper remoting-invoke-with-check) Gnome.Vfs.VfsStream:.ctor (string,System.IO.FileMode) at FSpot.ImageFile.Open () [0x00000] at FSpot.ImageFile.PixbufStream () [0x00000] at FSpot.ImageFile.Load (Int32 max_width, Int32 max_height) [0x00000] at PixbufLoader.ProcessRequest (.RequestItem request) [0x00000] at FSpot.ThumbnailGenerator.ProcessRequest (.RequestItem request) [0x00000] open uri = file:///home/goodmami/Photos/2007/01/28/img_6026.jpg open uri = file:///home/goodmami/Photos/2007/01/28/img_6026.jpg open uri = file:///home/goodmami/Photos/2007/01/28/img_6022.jpg System.IO.FileNotFoundException: Could not find uri "file:///home/goodmami/Photos/2007/01/28/img_6022.jpg". at Gnome.Vfs.VfsStream..ctor (System.String text_uri, FileMode mode, Boolean async) [0x00000] at Gnome.Vfs.VfsStream..ctor (System.String uri, FileMode mode) [0x00000] at (wrapper remoting-invoke-with-check) Gnome.Vfs.VfsStream:.ctor (string,System.IO.FileMode) at FSpot.ImageFile.Open () [0x00000] at FSpot.ImageFile.PixbufStream () [0x00000] at FSpot.ImageFile.Load (Int32 max_width, Int32 max_height) [0x00000] at PixbufLoader.ProcessRequest (.RequestItem request) [0x00000] at FSpot.ThumbnailGenerator.ProcessRequest (.RequestItem request) [0x00000] CD-ROM Disc - gnome-dev-cdrom - VfsMount burn:/// True True Cdrom Cdrom item ImportCommand+SourceItem Scanning /home/goodmami/Photos/JSA_Potluck item changed FIB: Step open uri = file:///home/goodmami/Photos/JSA_Potluck/00001.jpg open uri = file:///home/goodmami/Photos/JSA_Potluck/00001.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00001-2.jpg item changed open uri = file:///home/goodmami/Photos/2007/01/13/00001-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00001-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00001-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00001-2.jpg cleanup context cleanup context FIB: Step open uri = file:///home/goodmami/Photos/JSA_Potluck/00002.jpg open uri = file:///home/goodmami/Photos/JSA_Potluck/00002.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00002-2.jpg FIB: Step open uri = file:///home/goodmami/Photos/JSA_Potluck/00004.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00002-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00002-2.jpg open uri = file:///home/goodmami/Photos/JSA_Potluck/00004.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00004-2.jpg FIB: Step open uri = file:///home/goodmami/Photos/JSA_Potluck/00007.jpg open uri = file:///home/goodmami/Photos/JSA_Potluck/00007.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00007-2.jpg FIB: Step open uri = file:///home/goodmami/Photos/JSA_Potluck/00008.jpg open uri = file:///home/goodmami/Photos/JSA_Potluck/00008.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008-2.jpg Stopping open uri = file:///home/goodmami/Photos/2007/01/13/00004-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00004-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00007-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00007-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008-2.jpg open uri = file:///home/goodmami/Photos/2007/01/13/00008-2.jpg Other information: In the output, there is a debug line that I added for my own coding. "FIB: Step" is a line that I added in FileImportBacked.cs to be printed whenever the "Step" method is run. You may ignore it if you want, or perhaps it might prove useful. I don't think the patch I'm working on affected this bug since I'm dealing with video-importing, and there were no videos in the folder I selected.
Confirming the 100% behaviour, two comments 1. while the system went into 100% cpu usage, and seemed to lock the entire system, it came out after a few seconds. 2. I also had a crash once instead of the cpu usage.
This is gdk-pixbuf going nuts downscaling an image. It is a known problem that used to have a work around which seems to no longer be enabled. The cpu should eventually finishe processing the image. I'm not sure what would have caused the crash from comment #1 though.
(In reply to comment #2) > I'm not sure what would have caused the crash from comment #1 though. > My mistake, i should have attached a stack trace. To reproduce you should do the following: 1. open the import dialog 2. quickly drag the separator _completely_ to the right, so that only the picture selection is visible (and no longer the image view). Then drag the separator just _a few_ pixels from the right to the left and release. 3. See the following stacktrace fly by ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Stacktrace: at (wrapper managed-to-native) Gtk.Dialog.gtk_dialog_run (intptr) <0x00004> at (wrapper managed-to-native) Gtk.Dialog.gtk_dialog_run (intptr) <0xffffffff> at Gtk.Dialog.Run () <0x00024> at ImportCommand.ImportFromFile (PhotoStore,string) <0x00548> at MainWindow.HandleImportCommand (object,System.EventArgs) <0x00051> at (wrapper delegate-invoke) System.MulticastDelegate.invoke_void_object_EventArgs (object,System.EventArgs) <0xffffffff> at GLib.Signal.voidObjectCallback (intptr,intptr) <0x00093> at (wrapper native-to-managed) GLib.Signal.voidObjectCallback (intptr,intptr) <0xffffffff> at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00004> at (wrapper managed-to-native) Gtk.Application.gtk_main () <0xffffffff> at Gtk.Application.Run () <0x00007> at Gnome.Program.Run () <0x00007> at FSpot.Driver.Main (string[]) <0x00612> at (wrapper runtime-invoke) System.Object.runtime_invoke_void_string[] (object,intptr,intptr,intptr) <0xffffffff> Native stacktrace: f-spot(mono_handle_native_sigsegv+0xde) [0x815644e] f-spot [0x8122c88] [0xffffe440] /usr/lib/libgdk_pixbuf-2.0.so.0(_pixops_scale+0x4a9) [0xb67aeff9] /usr/lib/libgdk_pixbuf-2.0.so.0(_pixops_composite_color+0x555) [0xb67b03a5] /usr/lib/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_composite_color+0x1c9) [0xb67a95d9] /usr/local/lib/f-spot/libfspoteog.so.0 [0xb400a1fb] /usr/local/lib/f-spot/libfspoteog.so.0 [0xb400bcc6] /usr/lib/libglib-2.0.so.0 [0xb7f02aa1] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x182) [0xb7f04802] /usr/lib/libglib-2.0.so.0 [0xb7f077df] /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1a9) [0xb7f07b89] /usr/lib/libgtk-x11-2.0.so.0(gtk_dialog_run+0x18b) [0xb690bdfb] [0xb3f8c36d] [0xb3f8c31d] [0xb3f87789] [0xb5f83332] [0xb5f7dd6a] [0xb3f9eacc] [0xb5f803ee] /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49) [0xb64bfb29] /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x12b) [0xb64b279b] /usr/lib/libgobject-2.0.so.0 [0xb64c2e81] /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7) [0xb64c40b7] /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29) [0xb64c4279] /usr/lib/libgtk-x11-2.0.so.0(gtk_widget_activate+0x94) [0xb6aa7994] /usr/lib/libgtk-x11-2.0.so.0(gtk_menu_shell_activate_item+0x118) [0xb699c7d8] /usr/lib/libgtk-x11-2.0.so.0 [0xb699dda2] /usr/lib/libgtk-x11-2.0.so.0 [0xb6995995] /usr/lib/libgtk-x11-2.0.so.0(_gtk_marshal_BOOLEAN__BOXED+0x60) [0xb698fb00] /usr/lib/libgobject-2.0.so.0 [0xb64b0fb9] /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x12b) [0xb64b279b] /usr/lib/libgobject-2.0.so.0 [0xb64c31e3] /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x68f) [0xb64c3e7f] /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29) [0xb64c4279] /usr/lib/libgtk-x11-2.0.so.0 [0xb6aa35f8] /usr/lib/libgtk-x11-2.0.so.0(gtk_propagate_event+0x183) [0xb6988ef3] /usr/lib/libgtk-x11-2.0.so.0(gtk_main_do_event+0x317) [0xb698a0f7] /usr/lib/libgdk-x11-2.0.so.0 [0xb68137ea] /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x182) [0xb7f04802] /usr/lib/libglib-2.0.so.0 [0xb7f077df] /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1a9) [0xb7f07b89] /usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb4) [0xb698a574] [0xb40462f9] [0xb40462b8] [0xb4046298] [0xb73e0db3] [0xb73dfa73] f-spot(mono_runtime_exec_main+0x62) [0x80996b2] f-spot(mono_runtime_run_main+0x1b9) [0x8099999] f-spot(mono_main+0xe47) [0x805d477] f-spot [0x805c122] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc) [0xb7d628cc] f-spot [0x805c071] Aborted (core dumped)
ok that I suspect is a real gdk-pixbuf bug.
Can we close this one, and refere to the gdk-pixbuf bug then?
bengt (comment #5): no, we should instead avoid downscaling lower than 16px or something (if possible)
or simpler, set some minimal width for the pane's content
Created attachment 101759 [details] [review] prevent-import-window-resize-below-original-size.patch here's a workaround. 1. Set to FALSE the pane2 Shrink property of the hpaned widget, preventing the reduction of the window below the size originally set. 2. In ImportCommand.cs set 16 the minimum (original) pane width.
fixed in r3739.
gdk bug reported as bug #520840