[Natty] [Crash] Shotwell crash when I want to see images from an external SDHC card.

Bug #673453 reported by Matthieu Baerts
This bug report is a duplicate of:  Bug #676949: shotwell crashes on importing images. Edit Remove
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gexiv2
Confirmed
Unknown
gexiv2 (Ubuntu)
Incomplete
Medium
Unassigned

Bug Description

Binary package hint: shotwell

Hello,

After having click on Mass Storage Camera on Shotwell, it crashes one or two seconds after

ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: shotwell 0.7.2-0ubuntu2
ProcVersionSignature: Ubuntu 2.6.37-2.10-generic 2.6.37-rc1
Uname: Linux 2.6.37-2-generic x86_64
NonfreeKernelModules: nvidia
Architecture: amd64
Date: Wed Nov 10 12:18:24 2010
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
ProcEnviron:
 LANG=C
 SHELL=/bin/bash
SourcePackage: shotwell

Revision history for this message
Matthieu Baerts (matttbe) wrote :
Revision history for this message
Matthieu Baerts (matttbe) wrote :
Download full text (4.0 KiB)

This is the backtrace but Shotwell has been compiled with no debugging symbols:

$ gdb shotwell
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/shotwell...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/shotwell
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffe6a76710 (LWP 27306)]
[New Thread 0x7fffe6275710 (LWP 27307)]
[New Thread 0x7fffe5a74710 (LWP 27308)]
[New Thread 0x7fffddd55710 (LWP 27323)]
[New Thread 0x7fffdcbc1710 (LWP 27352)]
[New Thread 0x7fffdc3c0710 (LWP 27353)]
[New Thread 0x7fffdbbbf710 (LWP 27354)]
[New Thread 0x7fffdb3be710 (LWP 27355)]
[New Thread 0x7fffdabbd710 (LWP 27356)]
[New Thread 0x7fffda3bc710 (LWP 27357)]
[New Thread 0x7fffd9bbb710 (LWP 27358)]
[New Thread 0x7fffd93ba710 (LWP 27359)]
[New Thread 0x7fffd8bb9710 (LWP 27360)]
[Thread 0x7fffdb3be710 (LWP 27355) exited]
[Thread 0x7fffda3bc710 (LWP 27357) exited]
[Thread 0x7fffd9bbb710 (LWP 27358) exited]
[Thread 0x7fffd8bb9710 (LWP 27360) exited]
[Thread 0x7fffdabbd710 (LWP 27356) exited]
[Thread 0x7fffdcbc1710 (LWP 27352) exited]
[Thread 0x7fffdc3c0710 (LWP 27353) exited]
[Thread 0x7fffdbbbf710 (LWP 27354) exited]
[Thread 0x7fffddd55710 (LWP 27323) exited]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff76dc890 in gexiv2_metadata_get_orientation ()
   from /usr/lib/libgexiv2.so.0
(gdb) bt
#0 0x00007ffff76dc890 in gexiv2_metadata_get_orientation ()
   from /usr/lib/libgexiv2.so.0
#1 0x00000000005a917c in photo_metadata_get_orientation ()
#2 0x00000000004ad4bf in import_preview_construct ()
#3 0x00000000004b1d70 in ?? ()
#4 0x000000000052f0a2 in ?? ()
#5 0x00007ffff1beb99e in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#6 0x00007ffff1bfdfb9 in ?? () from /usr/lib/libgobject-2.0.so.0
#7 0x00007ffff1c073b6 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#8 0x00007ffff1c07755 in g_signal_emit_by_name ()
   from /usr/lib/libgobject-2.0.so.0
#9 0x000000000052b4a4 in ?? ()
#10 0x00000000004b0430 in ?? ()
#11 0x00000000004b082d in ?? ()
#12 0x000000000053e86c in library_window_switch_to_page ()
#13 0x0000000000540aab in ?? ()
#14 0x00007ffff1beb99e in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#15 0x00007ffff1bfdfb9 in ?? () from /usr/lib/libgobject-2.0.so.0
#16 0x00007ffff1c073b6 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#17 0x00007ffff1c07573 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff3d28e9d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x00007ffff3d2c34a in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#20 0x00007ffff3c29fd8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x00007ffff1beb99e in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#22 0x00007ffff1bfddb2 in ?? () fro...

Read more...

Revision history for this message
Matthieu Baerts (matttbe) wrote :

If I try to recompile the version availlable on Ubuntu Natty, it failed to build with this error:
error: Package `gexiv2' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
=> http://launchpadlibrarian.net/58926936/buildlog_ubuntu-natty-i386.shotwell_0.7.2-0ubuntu3~matttbe~ppa1_FAILEDTOBUILD.txt.gz

I guess a few librairies have been updated and not Shotwell.

Changed in shotwell (Ubuntu):
importance: Undecided → Medium
Revision history for this message
Jim Nelson (yorba-jim) wrote :

This is a problem in gexiv2, the metadata library Shotwell uses. It's highly possible this has been fixed in trunk. Is it possible for you to build trunk and test again? Information for doing so is available at http://trac.yorba.org/wiki/gexiv2

affects: shotwell (Ubuntu) → gexiv2 (Ubuntu)
Changed in gexiv2 (Ubuntu):
status: New → Incomplete
affects: shotwell → gexiv2
Changed in gexiv2:
status: Unknown → New
Revision history for this message
Matthieu Baerts (matttbe) wrote :

Hello Jim,

Thank you for your help!

I've rebuilded the latest version of gexiv2 (I had to change the directory where is installed "gexiv2.vapi" from "/usr/share/vala-0.10/vapi/" to "/usr/share/vala-0.12/vapi/") on my ppa (ppa:matttbe/ppa) and then recompiled shotwell but it still fails to build but with another output. In fact, many things have been deprecated since vala-0.12...
Please have a look there: http://launchpadlibrarian.net/59019243/buildlog_ubuntu-natty-amd64.shotwell_0.7.2-0ubuntu3~matttbe~ppa5_FAILEDTOBUILD.txt.gz

BTW a newer version of gexiv2 is available on Natty. This is the version 0.2.1.

Revision history for this message
Matthieu Baerts (matttbe) wrote :

Do I have to report a bug to gexiv2 package's maintainer?
This is what I've changed: http://bazaar.launchpad.net/~matttbe/gexiv2/bug673453/revision/16#debian/libgexiv2-dev.install

But I don't know if gexiv2 supports valac-0.12. What do you think about that?

Revision history for this message
Jim Nelson (yorba-jim) wrote :

So, Shotwell does not support Vala 0.11 -- some of the changes to Vala require larger changes to Shotwell. I recommend building Shotwell with Vala 0.10.1.

gexiv2 does not depend on Vala at all, and comes with a VAPI (so you don't even need Vala to build that).

To step back, you shouldn't have to recompile Shotwell -- I believe this problem is entirely inside gexiv2, and I'm hoping that building and installing our trunk version will solve your problem. There is a partial fix in gexiv2 0.2.1, but what's in trunk is more thorough.

Revision history for this message
Omer Akram (om26er) wrote :

try this i have build from trunk

Revision history for this message
Matthieu Baerts (matttbe) wrote :

@Omer: sorry but I'm on a x86_64 architecture ;)
But it's not a problem because I already rebuild the package with the latest version. It's available on my ppa

@Jim: I still have the crash. As you said, it seems it's a problem with gexiv2 but I already import thousands of files from the same digital device!

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff76e2470 in gexiv2_metadata_has_exif () from /usr/lib/libgexiv2.so.0
(gdb) bt
#0 0x00007ffff76e2470 in gexiv2_metadata_has_exif ()
   from /usr/lib/libgexiv2.so.0
#1 0x00007ffff76ddc16 in gexiv2_metadata_get_orientation ()
   from /usr/lib/libgexiv2.so.0
#2 0x00000000005a917c in photo_metadata_get_orientation ()
#3 0x00000000004ad4bf in import_preview_construct ()
#4 0x00000000004b1d70 in ?? ()
#5 0x000000000052f0a2 in ?? ()
#6 0x00007ffff1b9499e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#7 0x00007ffff1ba6fb9 in ?? () from /usr/lib/libgobject-2.0.so.0
#8 0x00007ffff1bb03b6 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#9 0x00007ffff1bb0755 in g_signal_emit_by_name ()
   from /usr/lib/libgobject-2.0.so.0
#10 0x000000000052b4a4 in ?? ()
#11 0x00000000004b0430 in ?? ()
#12 0x00000000004b082d in ?? ()
#13 0x000000000053e86c in library_window_switch_to_page ()
#14 0x0000000000540aab in ?? ()
#15 0x00007ffff1b9499e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#16 0x00007ffff1ba6fb9 in ?? () from /usr/lib/libgobject-2.0.so.0
#17 0x00007ffff1bb03b6 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff1bb0573 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#19 0x00007ffff3d12d66 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#20 0x00007ffff3d167d8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x00007ffff3bfa9a3 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#22 0x00007ffff1b9499e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#23 0x00007ffff1ba6db2 in ?? () from /usr/lib/libgobject-2.0.so.0
#24 0x00007ffff1bb01ba in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#25 0x00007ffff1bb0573 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#26 0x00007ffff3d32181 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#27 0x00007ffff3bf84c3 in gtk_propagate_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#28 0x00007ffff3bf888b in gtk_main_do_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#29 0x00007ffff384c7ac in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#30 0x00007ffff12cd38d in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#31 0x00007ffff12cdb78 in ?? () from /lib/libglib-2.0.so.0
#32 0x00007ffff12ce1ba in g_main_loop_run () from /lib/libglib-2.0.so.0
#33 0x00007ffff3bf7827 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#34 0x0000000000455ead in library_exec ()
#35 0x0000000000456572 in _vala_main ()
#36 0x00000000004565f9 in main ()

About the compilation, I've forced the use of valac-0.10 but now, I've another problem :P
error: launchpad-integration not found in specified Vala API directories or GObject-Introspection GIR directories

Revision history for this message
Jim Nelson (yorba-jim) wrote :

This is a slightly different stack trace from the last one (a better one too, with symbols). This suggests to me this is not fixed in trunk.

What would be helpful now is to know which photo is causing this problem. It looks like it happens while it's loading the thumbnails and metadata off the device. As a test, can you manually copy the files off the SDHC to your local hard drive and drag-and-drop them into Shotwell? When you do that, run Shotwell like this from the console:

$ SHOTWELL_LOG=1 shotwell

If Shotwell crashes (I expect it to), attach to this ticket this file: ~/.cache/shotwell/shotwell.log This will hopefully tell us which photo caused the problem, which we can then use to debug the gexiv2 problem.

Revision history for this message
Matthieu Baerts (matttbe) wrote :

Hello,

It seems the first photo was causing the crash.

This is the shotwell.log
L 20688 2010-11-15 23:23:33 [MSG] main.vala:71: Verifying database ...
L 20688 2010-11-15 23:23:33 [DBG] DatabaseTables.vala:292: Database schema version 8 created by app version 0.6.90
L 20688 2010-11-15 23:23:33 [DBG] main.vala:183: 0,546582 seconds to Gtk.main()

The photo is temporally available there: http://dl.dropbox.com/u/257747/Misc/IMG_3147.JPG (no problem to share this file, the picture is blurry :) )

Changed in gexiv2:
status: New → Confirmed
Revision history for this message
pschonmann (pschonmann) wrote :

Tried to compile gexiv2 from svn, but still failed.

Revision history for this message
Jim Nelson (yorba-jim) wrote :

Okay ... when I import into Shotwell trunk, everything works fine. When I import into Shotwell 0.7.2, crash (although, worrisomely, it's a different stack trace than the prior two you've supplied).

Weirdly, it's in gexiv2, which Shotwell should be using roughly the same way in both versions.

I'll keep looking into this.

-- Jim

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.