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 406505 - Resizing selection window in Import locks entire system w/ 100% CPU usage
Resizing selection window in Import locks entire system w/ 100% CPU usage
Status: RESOLVED FIXED
Product: f-spot
Classification: Other
Component: Import
0.3.x
Other All
: Normal critical
: ---
Assigned To: F-spot maintainers
F-spot maintainers
Depends on:
Blocks:
 
 
Reported: 2007-02-10 20:53 UTC by Michael Wayne Goodman
Modified: 2008-03-06 21:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
prevent-import-window-resize-below-original-size.patch (1.49 KB, patch)
2007-12-28 19:51 UTC, Maxxer
none Details | Review

Description Michael Wayne Goodman 2007-02-10 20:53:30 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.
Comment 1 Thomas Van Machelen 2007-02-12 06:52:51 UTC
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.

Comment 2 Larry Ewing 2007-02-12 20:08:26 UTC
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.
Comment 3 Thomas Van Machelen 2007-02-13 06:20:28 UTC
(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)


Comment 4 Larry Ewing 2007-02-13 20:16:02 UTC
ok that I suspect is a real gdk-pixbuf bug.
Comment 5 Bengt Thuree 2007-11-21 18:28:16 UTC
Can we close this one, and refere to the gdk-pixbuf bug then?
Comment 6 Stephane Delcroix 2007-12-10 12:26:50 UTC
bengt (comment #5): no, we should instead avoid downscaling lower than 16px or something (if possible)
Comment 7 Stephane Delcroix 2007-12-10 12:27:27 UTC
or simpler, set some minimal width for the pane's content
Comment 8 Maxxer 2007-12-28 19:51:45 UTC
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.
Comment 9 Stephane Delcroix 2008-03-06 20:52:12 UTC
fixed in r3739.
Comment 10 Stephane Delcroix 2008-03-06 21:01:52 UTC
gdk bug reported as bug #520840