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 629248 - f-spot crashes after being launched to import from a newly connected device
f-spot crashes after being launched to import from a newly connected device
Status: RESOLVED FIXED
Product: f-spot
Classification: Other
Component: Import
0.7.3
Other Linux
: Normal critical
: 0.8.0
Assigned To: F-spot maintainers
F-spot maintainers
Depends on:
Blocks:
 
 
Reported: 2010-09-10 10:01 UTC by robb
Modified: 2010-09-15 12:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description robb 2010-09-10 10:01:47 UTC
after connecting a camera f-spot is launched, then shows an error dialog/popup, then crashes completely. The issue occurs for at least two different cameras e.g. Nikon D700 and Samsung ES15.

This is 7.3 built (configure, make, make install) on Fedora 12.

A similar problem was apparent with 7.2 (but not 7.1).

I started f-spot in a terminal and then connect a camera, this was the output:

[robb@rubicon 20100910-11:53:35]$ /usr/local/bin/f-spot
[Info  11:53:39.118] Initializing Mono.Addins

(f-spot:18225): GdkPixbuf-WARNING **: GdkPixbufLoader finalized without calling gdk_pixbuf_loader_close() - this is not allowed. You must explicitly end the data stream to the loader before dropping the last reference.



Marshaling message-received signal
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ApplicationException: Filename path must be absolute
  at Hyena.SafeUri.FilenameToUri (System.String localPath) [0x00000] 
  at Hyena.SafeUri..ctor (System.String uri) [0x00000] 
  at FSpot.App.HandleImport (System.String path) [0x00000] 
  at FSpot.App.HandleMessageReceived (System.Object sender, Unique.MessageReceivedArgs e) [0x00000] 
  at Unique.App.MessageReceivedWrapper (System.Object sender, Unique.MessageReceivedArgs e) [0x00000] 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] 
  --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] 
  at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] 
  at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] 
  at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] 
  at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x00000] 
  at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00000] 
  at GLib.SignalClosure.MarshalCallback (IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) [0x00000] 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at FSpot.Driver.Startup()
   at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup)
   at FSpot.Driver.Main(System.String[] args)
[robb@rubicon 20100910-11:54:03]$
Comment 1 Ruben Vermeersch 2010-09-13 13:24:36 UTC
I just pushed a new version to git which adds extra debug information. Could you run f-spot with the --debug flag and paste the output here?
Comment 2 robb 2010-09-14 15:48:43 UTC
It seems I would need more help on how to do that. I didn't see an obvious version or branch name, so I pulled straight from "head of trunk" i.e.

I made a directory, cd'ed into it, and did:
[robb@rubicon 20100914-17:37:04]$ git clone git://git.gnome.org/f-spot
Cloning into f-spot...
remote: Counting objects: 42149, done.
remote: Compressing objects: 100% (9327/9327), done.
remote: Total 42149 (delta 32747), reused 41939 (delta 32606)
Receiving objects: 100% (42149/42149), 14.59 MiB | 261 KiB/s, done.
Resolving deltas: 100% (32747/32747), done.

Then, since there is no configure and make won't run, I did:
./autogen.sh --prefix=$HOME/unstable/f-spot --disable-scrollkeeper
Running git submodule update --init ...
Submodule 'lib/Hyena' (git://git.gnome.org/hyena) registered for path 'lib/Hyena'
Submodule 'lib/TagLib/TagLib' (git://github.com/rubenv/taglib-sharp.git) registered for path 'lib/TagLib/TagLib'
Cloning into lib/Hyena...
...

But this ends with:
fatal: reference is not a tree: b597fe772b8f2278bde0cc3d0815c5a51c54370e
Unable to checkout 'b597fe772b8f2278bde0cc3d0815c5a51c54370e' in submodule path 'lib/TagLib/TagLib'
Error: Could not run git, which is required to configure f-spot

I don't know what "could not run git" means? I can run it, I just did (above).
Comment 3 Ruben Vermeersch 2010-09-14 20:34:06 UTC
Oh apologies! Sorry for that, I pushed to the wrong repository. Please try running autogen again.
Comment 4 robb 2010-09-15 09:43:03 UTC
Thanks. Got it this time - I think.
I did git "clone", autogen, make make install.
Here is the runtime output:

[robb@rubicon 20100915-11:39:30]$ /home/robb/unstable/f-spot/bin/f-spot --debug
** Running f-spot in Debug Mode **
** Running Mono with --debug   **
[1 Info  11:39:32.373] Initializing Mono.Addins
[1 Info  11:39:32.533] Unregistering http://addins.f-spot.org/0.6.2/main.mrep
[1 Debug 11:39:32.564] Mono.Addins Initialization took 0.182898
[1 Debug 11:39:32.887] Db Initialization took 0.139964
[1 Debug 11:39:33.314] Query Started : SELECT * FROM photos  WHERE  photos.id NOT IN (SELECT photo_id FROM photo_tags WHERE tag_id = 2) ORDER BY  time DESC, filename ASC 
[1 Debug 11:39:33.493] QueryToTemp took 0.179055 : SELECT * FROM photos  WHERE  photos.id NOT IN (SELECT photo_id FROM photo_tags WHERE tag_id = 2) ORDER BY  time DESC, filename ASC 
[1 Debug 11:39:33.493] Reloading the query took 0.181876
[1 Debug 11:39:33.678] Query took 0.009703 : SELECT * FROM photoquery_temp_0 LIMIT 100 OFFSET 0
[1 Debug 11:39:33.727] Query Started : SELECT * FROM photos  WHERE  photos.id NOT IN (SELECT photo_id FROM photo_tags WHERE tag_id = 2) ORDER BY  time ASC, filename ASC 
[1 Debug 11:39:33.908] QueryToTemp took 0.181189 : SELECT * FROM photos  WHERE  photos.id NOT IN (SELECT photo_id FROM photo_tags WHERE tag_id = 2) ORDER BY  time ASC, filename ASC 
[2 Debug 11:39:33.982] PhotosPerMonth took 0.250903
[1 Debug 11:39:33.999] Query took 0.049348 : SELECT * FROM photoquery_temp_0 LIMIT 100 OFFSET 0
[2 Debug 11:39:34.000] TimeAdaptor REAL Reload took 0.088267
[1 Debug 11:39:34.063] open uri = file:///home/robb/Photos/2008/20080202/DC00001.jpg
[1 Debug 11:39:34.080] Reloading the query took 0.353418
[1 Debug 11:39:34.147] Query Started : SELECT * FROM photos  WHERE  photos.id NOT IN (SELECT photo_id FROM photo_tags WHERE tag_id = 2) ORDER BY  time ASC, filename ASC 
[1 Debug 11:39:34.371] QueryToTemp took 0.224122 : SELECT * FROM photos  WHERE  photos.id NOT IN (SELECT photo_id FROM photo_tags WHERE tag_id = 2) ORDER BY  time ASC, filename ASC 
[3 Debug 11:39:34.403] PhotosPerMonth took 0.286277
[3 Debug 11:39:34.403] TimeAdaptor REAL Reload took 0.031612
[1 Debug 11:39:34.438] IndexOf took 0.017852 : SELECT ROWID AS row_id FROM photoquery_temp_0 WHERE id = 4344
[1 Debug 11:39:34.438] Reloading the query took 0.290527
[1 Debug 11:39:34.630] Query took 0.038501 : SELECT * FROM photoquery_temp_0 LIMIT 100 OFFSET 0
[4 Debug 11:39:34.693] PhotosPerMonth took 0.120552
[4 Debug 11:39:34.693] TimeAdaptor REAL Reload took 0.321641

(f-spot:29233): GdkPixbuf-WARNING **: GdkPixbufLoader finalized without calling gdk_pixbuf_loader_close() - this is not allowed. You must explicitly end the data stream to the loader before dropping the last reference.
[1 Debug 11:39:34.997] Loading image took 0.99614

 ... Camera turned on here ...

[1 Debug 11:39:59.658] Importing from gphoto2:usb:001,005
Marshaling message-received signal
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ApplicationException: Filename path must be absolute
  at Hyena.SafeUri.FilenameToUri (System.String localPath) [0x00048] in /space/home/robb/src/f-spot/f-spot-git/f-spot/lib/Hyena/Hyena/Hyena/SafeUri.cs:93 
  at Hyena.SafeUri..ctor (System.String uri) [0x00030] in /space/home/robb/src/f-spot/f-spot-git/f-spot/lib/Hyena/Hyena/Hyena/SafeUri.cs:55 
  at FSpot.App.HandleImport (System.String path) [0x00024] in /space/home/robb/src/f-spot/f-spot-git/f-spot/src/Clients/MainApp/FSpot/App.cs:226 
  at FSpot.App.HandleMessageReceived (System.Object sender, Unique.MessageReceivedArgs e) [0x0002e] in /space/home/robb/src/f-spot/f-spot-git/f-spot/src/Clients/MainApp/FSpot/App.cs:196 
  at Unique.App.MessageReceivedWrapper (System.Object sender, Unique.MessageReceivedArgs e) [0x00000] 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00057] in /builddir/build/BUILD/mono-2.4.3.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:159 
  --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00071] in /builddir/build/BUILD/mono-2.4.3.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:169 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /builddir/build/BUILD/mono-2.4.3.1/mcs/class/corlib/System.Reflection/MethodBase.cs:111 
  at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x000b9] in /builddir/build/BUILD/mono-2.4.3.1/mcs/class/corlib/System/Delegate.cs:430 
  at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00018] in /builddir/build/BUILD/mono-2.4.3.1/mcs/class/corlib/System/MulticastDelegate.cs:71 
  at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in /builddir/build/BUILD/mono-2.4.3.1/mcs/class/corlib/System/Delegate.cs:402 
  at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x00000] 
  at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00000] 
  at GLib.SignalClosure.MarshalCallback (IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) [0x00000] 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at FSpot.Driver.Startup() in /space/home/robb/src/f-spot/f-spot-git/f-spot/src/Clients/MainApp/FSpot/main.cs:line 355
   at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) in /space/home/robb/src/f-spot/f-spot-git/f-spot/lib/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:line 54
   at FSpot.Driver.Main(System.String[] args) in /space/home/robb/src/f-spot/f-spot-git/f-spot/src/Clients/MainApp/FSpot/main.cs:line 273
[5 Debug 11:39:59.675] Finalizer called on FSpot.Widgets.Filmstrip. Should be Disposed
[5 Debug 11:39:59.675] Finalizer called on FSpot.PhotoView. Should be Disposed
[robb@rubicon 20100915-11:39:59]$
Comment 5 Ruben Vermeersch 2010-09-15 11:32:50 UTC
(In reply to comment #4)
> [1 Debug 11:39:59.658] Importing from gphoto2:usb:001,005

This is exactly the piece of debug output I was looking for :-). Very interesting and very curious. Will try to find what's wrong here.
Comment 6 Ruben Vermeersch 2010-09-15 12:00:21 UTC
I've pushed a workaround that should fix this. It will be in the 0.8.0 release which will be out in a few hours. Thanks for reporting this!