When no photos are displayed, clicking on timeline crashes f-spot

Bug #373202 reported by Martin Schwenke
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
F-Spot
Fix Released
High
f-spot (Ubuntu)
Fix Released
Medium
Ubuntu Desktop Bugs

Bug Description

Binary package hint: f-spot

Steps to reproduce the bug:

 1. Start without pre-existing f-spot configuration (no ~/Photos, ~/.gnome2/f-spot or ~/.gconf/apps/f-spot directory).
  2. Start f-spot
  3. In the import dialog which appears, select a directory with some images and import them.
  4. Click the close button in the search bar thingy (the brown bar where it says "import roll")
  5. Double-click a tag which has no photos (none of the photos I imported had any tags so this was trivial)
  6. Maximise the window
  7. Click in the timeline pane.

Here's the backtrace:

Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.IndexOutOfRangeException: Array index is out of range.
  at FSpot.PhotoQuery+PhotoCache.Get (Int32 index) [0x00000]
  at FSpot.PhotoQuery.get_Item (Int32 index) [0x00000]
  at FSpot.PhotoQuery.LookupItem (DateTime date, Boolean asc) [0x00000]
  at FSpot.PhotoQuery.LookupItem (DateTime date) [0x00000]
  at FSpot.TimeAdaptor.SetGlass (Int32 min) [0x00000]
  at FSpot.GroupSelector+Glass.PositionChanged () [0x00000]
  at FSpot.GroupSelector+Manipulator.SetPosition (Int32 position, Boolean update) [0x00000]
  at FSpot.GroupSelector+Manipulator.SetPosition (Int32 position) [0x00000]
  at FSpot.GroupSelector.OnButtonPressEvent (Gdk.EventButton args) [0x00000]
  at Gtk.Widget.buttonpressevent_cb (IntPtr widget, IntPtr evnt) [0x00000]
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at Gtk.Widget.buttonpressevent_cb(IntPtr widget, IntPtr evnt)
   at Gtk.Widget.buttonpressevent_cb(IntPtr , IntPtr )
   at Gtk.Application.gtk_main()
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Gnome.Program.Run()
   at FSpot.Driver.Main(System.String[] args)

Revision history for this message
Pedro Villavicencio (pedro) wrote :

Thanks for the report Martin, but that's not a bug here with Jaunty, i get a No matching photos found message on the search bar and clicking on the timeline doens't make the app crash, could you please test with it on jaunty?.

Changed in f-spot (Ubuntu):
assignee: nobody → Ubuntu Desktop Bugs (desktop-bugs)
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
Martin Schwenke (martin-meltin) wrote :

David, can you please post a recipe that includes a timeline click for crashing the Jaunty version?

Revision history for this message
David Gibson (dwg) wrote :

Sorry I haven't done this sooner; I've been sidetracked by other things.

This recipe crashes it for me:
  1. Start without pre-existing f-spot configuration (no ~/Photos, ~/.gnome2/f-spot or ~/.gconf/apps/f-spot directory).
  2. Start f-spot
  3. In the import dialog which appears, select a directory with some images and import them.
  4. Click the close button in the search bar thingy (the brown bar where it says "import roll")
  5. Double-click a tag which has no photos (none of the photos I imported had any tags so this was trivial)
  6. Maximise the window
  7. Click in the timeline pane.

At this point f-spot seems to crash reliably for me. If I leave out step (6), it doesn't always seem to crash, however it also doesn't seem to respond at all to the click in the timeline pane and clicking there repeatedly does generally seem to crash it.

Running the above recipe starting f-spot from a terminal, I get these messages:

mulberryst:~$ rm -r .gconf/apps/f-spot/ .gnome2/f-spot/ Photos/
rm: cannot remove `.gconf/apps/f-spot/': No such file or directory
mulberryst:~$ f-spot
[Info 00:04:44.459] Initializing DBus
[Info 00:04:44.566] Initializing Mono.Addins
[Info 00:04:46.181] Starting new FSpot server
item ImportCommand+SourceItem
cleanup context
cleanup context

(f-spot:5935): 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.
Stopping
[Info 00:05:03.237] Starting BeagleService
[Info 00:05:03.237] Hack for gnome-settings-daemon engaged
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.IndexOutOfRangeException: Array index is out of range.
  at FSpot.PhotoQuery+PhotoCache.Get (Int32 index) [0x00000]
  at FSpot.PhotoQuery.get_Item (Int32 index) [0x00000]
  at FSpot.PhotoQuery.LookupItem (DateTime date, Boolean asc) [0x00000]
  at FSpot.PhotoQuery.LookupItem (DateTime date) [0x00000]
  at FSpot.TimeAdaptor.SetGlass (Int32 min) [0x00000]
  at FSpot.GroupSelector+Glass.PositionChanged () [0x00000]
  at FSpot.GroupSelector+Manipulator.SetPosition (Int32 position, Boolean update) [0x00000]
  at FSpot.GroupSelector+Manipulator.SetPosition (Int32 position) [0x00000]
  at FSpot.GroupSelector.OnButtonPressEvent (Gdk.EventButton args) [0x00000]
  at Gtk.Widget.buttonpressevent_cb (IntPtr widget, IntPtr evnt) [0x00000]
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at Gtk.Widget.buttonpressevent_cb(IntPtr widget, IntPtr evnt)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Gnome.Program.Run()
   at FSpot.Driver.Main(System.String[] args)

Revision history for this message
Pedro Villavicencio (pedro) wrote :

Confirmed, with the steps given on the last comment by David.

Changed in f-spot (Ubuntu):
status: Incomplete → Confirmed
description: updated
Revision history for this message
Pedro Villavicencio (pedro) wrote :

found an upstream report with similar trace and steps to reproduce it here: http://bugzilla.gnome.org/show_bug.cgi?id=578871 ; feel free to subscribe. linking the report, thanks both!.

Changed in f-spot (Ubuntu):
status: Confirmed → Triaged
Changed in f-spot:
status: Unknown → New
Revision history for this message
Pedro Villavicencio (pedro) wrote :

The bug has been fixed upstream, thanks for reporting.

Changed in f-spot (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Stefan Hammer (j-4-deactivatedaccount) wrote :

Still present in f-spot 0.6.1.2 (shipped with Karmic)

On a new install - when no photos added -> klick on the timeline slider -> crash

[Info 13:28:26.256] Initializing DBus
[Info 13:28:26.330] Initializing Mono.Addins
[Info 13:28:26.450] Starting new FSpot server (f-spot 0.6.1.2)
[Info 13:28:26.924] Starting BeagleService
[Info 13:28:26.936] Hack for gnome-settings-daemon engaged

(f-spot:9347): 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.
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.ArgumentOutOfRangeException: Argument is out of range.
  at System.DateTime.DaysInMonth (Int32 year, Int32 month) [0x00000]
  at FSpot.TimeAdaptor.DateFromIndexDescending (Int32 item) [0x00000]
  at FSpot.TimeAdaptor.DateFromIndex (Int32 item) [0x00000]
  at FSpot.TimeAdaptor.GlassLabel (Int32 item) [0x00000]
  at FSpot.GroupSelector+Glass.StartDrag (Double x, Double y, UInt32 time) [0x00000]
  at FSpot.GroupSelector.OnButtonPressEvent (Gdk.EventButton args) [0x00000]
  at Gtk.Widget.buttonpressevent_cb (IntPtr widget, IntPtr evnt) [0x00000]
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at Gtk.Widget.buttonpressevent_cb(IntPtr widget, IntPtr evnt)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at FSpot.Driver.Main(System.String[] args)

Revision history for this message
Chris Halse Rogers (raof) wrote :

Both bugs here are fixed in 0.6.1.5, in Lucid. The timeline slider is now insensitive when there are no matching images.

Changed in f-spot (Ubuntu):
status: Fix Committed → Fix Released
Changed in f-spot:
importance: Unknown → High
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.