GNOME Bugzilla – Bug 629248
f-spot crashes after being launched to import from a newly connected device
Last modified: 2010-09-15 12:00:51 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]$
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?
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).
Oh apologies! Sorry for that, I pushed to the wrong repository. Please try running autogen again.
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]$
(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.
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!