Shotwell crashes if disk with images is not mounted

Bug #659122 reported by Sam Fowler on 2010-10-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Shotwell
Invalid
Unknown
shotwell (Ubuntu)
Medium
Unassigned

Bug Description

Binary package hint: shotwell

I am using:

Ubuntu 10.10
Shotwell 0.7.2-0Ubuntu2

When Shotwell has image libraries on a disk which is not mounted it crashes on startup. More specifically my images are all mounted on an external disk and are linked into the Shotwell library (not copied in). When starting Shotwell it opens the "Loading" screen and shows progress to approximately 50% before crashing and closing. Mounting the disk solves the problem and Shotwell loads as normal.

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: shotwell 0.7.2-0ubuntu2
ProcVersionSignature: Ubuntu 2.6.35-22.34-generic-pae 2.6.35.4
Uname: Linux 2.6.35-22-generic-pae i686
NonfreeKernelModules: fglrx
Architecture: i386
Date: Tue Oct 12 12:49:31 2010
InstallationMedia: Ubuntu 10.04 "Lucid Lynx" - Beta i386 (20100318)
ProcEnviron:
 LANG=en_GB.utf8
 SHELL=/bin/bash
SourcePackage: shotwell

Sam Fowler (samfowler11) wrote :
Adam Dingle (adam-yorba) wrote :

Sam,

I can't reproduce this. I'm also on Ubuntu 10.10 with Shotwell 0.7.2-0ubuntu2. I created a new library and imported some photos from an external hard drive connected via USB. When I disconnect the hard drive and start Shotwell, there is no crash and all photos appear in the Missing View as expected.

What kind of external disk are you using?

If you can reproduce this crash, it would help us if you could generate a stack trace. To do that, first install the Ubuntu packages libc6-dbg, libglib2.0-0-dbg and libgtk2.0-0-dbg (these contain debug symbols). Then from the command line run 'gdb shotwell' to run Shotwell in the debugger. Once Shotwell crashes, type 'where' in gdb; that will show you a stack trace which you can copy and paste into a comment here. Thanks!

Sam Fowler (samfowler11) wrote :

Hi,
The debug symbols dont seem to work.. I get the following:

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 "i686-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.

How do I get them into the right place.

Thanks,

Sam

Jim Nelson (yorba-jim) wrote :

Hi Sam,

Our PPA has a binary version of Shotwell with debug symbols. You can find it here:

https://launchpad.net/~yorba/+archive/ppa

To get Shotwell from it, go into Synaptic and add this in Settings -> Repositories -> Other Software:

deb http://ppa.launchpad.net/yorba/ppa/ubuntu maverick main

You'll need to re-install Shotwell after doing this.

Thanks,

-- Jim

Sam Fowler (samfowler11) wrote :

Hi,

I have followed the instructions and got the following stack trace, I hope it helps!

Thanks,

Sam

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 "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/shotwell...done.
(gdb) run
Starting program: /usr/bin/shotwell
[Thread debugging using libthread_db enabled]
[New Thread 0xb4372b70 (LWP 27826)]
[New Thread 0xb3b71b70 (LWP 27827)]
[New Thread 0xb3370b70 (LWP 27828)]
[New Thread 0xb2b6fb70 (LWP 27829)]
[New Thread 0xb236eb70 (LWP 27830)]
[New Thread 0xb19b1b70 (LWP 27836)]
[Thread 0xb19b1b70 (LWP 27836) exited]
[New Thread 0xb19b1b70 (LWP 27837)]
[New Thread 0xadf11b70 (LWP 27838)]
[New Thread 0xad710b70 (LWP 27839)]
[New Thread 0xacf0fb70 (LWP 27840)]
[New Thread 0xac5ffb70 (LWP 27841)]
[New Thread 0xabbffb70 (LWP 27842)]
[New Thread 0xab3feb70 (LWP 27843)]
[New Thread 0xaabfdb70 (LWP 27844)]
[New Thread 0xaa3fcb70 (LWP 27845)]
[New Thread 0xa9bfbb70 (LWP 27846)]
**
ERROR:DataCollection.vala:847:data_collection_internal_notify_altered: assertion failed: (data_collection_internal_contains (self, object))

Program received signal SIGABRT, Aborted.
0xb7fe1424 in __kernel_vsyscall ()
(gdb) where
#0 0xb7fe1424 in __kernel_vsyscall ()
#1 0xb6125941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xb6128e42 in abort () at abort.c:92
#3 0xb63c54af in g_assertion_message (domain=0x0,
    file=0x8293b74 "DataCollection.vala", line=847,
    func=0x8297ce0 "data_collection_internal_notify_altered",
    message=<value optimised out>)
    at /build/buildd/glib2.0-2.26.0/glib/gtestutils.c:1358
#4 0xb63c5aed in g_assertion_message_expr (domain=0x0,
    file=0x8293b74 "DataCollection.vala", line=847,
    func=0x8297ce0 "data_collection_internal_notify_altered",
    expr=0x82949ec "data_collection_internal_contains (self, object)")
    at /build/buildd/glib2.0-2.26.0/glib/gtestutils.c:1369
#5 0x081734dc in data_collection_internal_notify_altered (self=0xa177d08,
    object=0xa1a1180, alteration=0xb0e0b860)
#6 0x08168547 in data_object_real_notify_altered (self=0xa1a1180,
    alteration=0xb0e0b860)
#7 0x08162c52 in data_source_contact_subscribers_alteration (self=0x8b6e1c8,
    contact_subscriber=0x8162640 <_data_source_subscriber_altered_data_source_contact_subscriber_alteration>, contact_subscriber_target=0x8b6e1c8,
    alteration=0xb0e0b860)
#8 0x08162d0e in data_source_real_internal_collection_thawed (base=0x8b6e1c8)
#9 0x08171bef in data_collection_real_notify_thawed (self=0x831e020)
---Type <return> to continue, or q <return> to quit---^CQuit
(gdb)

Jim Nelson (yorba-jim) wrote :

Hi Sam,

Yes, this is good, but the stack trace is incomplete. (I should have clarified Adam's instructions when I posted about the PPA. My fault.) If you would be so kind to reproduce it again, but doing it this way so I can get a complete backtrace:

At the command prompt, run Shotwell like this:

    $ SHOTWELL_LOG=1 gdb shotwell 2>&1 tee shotwell.gdb

At the gdb prompt type "run":

    (gdb) run

Then reproduce the problem. After Shotwell crashes type this at the gdb prompt:

    (gdb) backtrace full

and exit gdb. If you could attach the shotwell.gdb file and ~/.cache/shotwell/shotwell.log file to this ticket, that would be a huge help.

-- Jim

Sam Fowler (samfowler11) wrote :
Download full text (3.2 KiB)

Hi,

From this I get the following:

SHOTWELL_LOG=1 gdb shotwell 2>&1 tee shotwell.gdb
Excess command line arguments ignored. (shotwell.gdb)
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 "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/shotwell...done.
/home/sam/tee: No such file or directory.
(gdb) run
Starting program: /usr/bin/shotwell
[Thread debugging using libthread_db enabled]
[New Thread 0xb4372b70 (LWP 13920)]
[New Thread 0xb3b71b70 (LWP 13921)]
[New Thread 0xb3370b70 (LWP 13922)]
[New Thread 0xb2b6fb70 (LWP 13923)]
[New Thread 0xb21ffb70 (LWP 13924)]
[New Thread 0xb19b0b70 (LWP 13925)]
[Thread 0xb19b0b70 (LWP 13925) exited]
[New Thread 0xb19b0b70 (LWP 13931)]
[New Thread 0xadf11b70 (LWP 13932)]
[New Thread 0xad710b70 (LWP 13933)]
[New Thread 0xacf0fb70 (LWP 13934)]
[New Thread 0xac5ffb70 (LWP 13935)]
[New Thread 0xabdfeb70 (LWP 13936)]
[New Thread 0xab5fdb70 (LWP 13937)]
[New Thread 0xaadfcb70 (LWP 13938)]
[New Thread 0xaa5fbb70 (LWP 13939)]
[New Thread 0xa9dfab70 (LWP 13940)]
**
ERROR:DataCollection.vala:847:data_collection_internal_notify_altered: assertion failed: (data_collection_internal_contains (self, object))

Program received signal SIGABRT, Aborted.
0xb7fe1424 in __kernel_vsyscall ()
(gdb) backtrace full
#0 0xb7fe1424 in __kernel_vsyscall ()
No symbol table info available.
##1 0xb6125941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        resultvar = <value optimised out>
        pid = -1239068684
        selftid = 13917
#2 0xb6128e42 in abort () at abort.c:92
        act = {__sigaction_handler = {sa_handler = 0xbfffe134,
            sa_sigaction = 0xbfffe134}, sa_mask = {__val = {3086924738,
              3221217572, 3057003256, 3221217560, 3087006324, 0, 3028631584,
              5, 0, 1, 3058924928, 3054943837, 3221217496, 3057396026,
              3057836020, 181940224, 3221217496, 3057280134, 0, 3221217632,
              3221217560, 3221217572, 3057836020, 3058924928, 0, 3057405785,
              181940224, 3057044187, 3221217644, 4, 3055903680, 3055898612}},
          sa_flags = -1240037482, sa_restorer = 0x82c99c4 <stderr@@GLIBC_2.0>}
        sigs = {__val = {32, 0 <repeats 31 times>}}
#3 0xb63c54af in g_assertion_message (domain=0x0,
    file=0x8293b74 "DataCollection.vala", line=847,
    func=0x8297ce0 "data_collection_internal_notify_altered",
    message=<value optimised out>)
    at /build/buildd/glib2.0-2.26.0/glib/gtestutils.c:1358
        lstr = "847\000s\203\331\n\373\024?\266\364\357\377\267t.\006\b\005\000\000\000@\342\377\277V\001\377\267"
---Type <return> to continue, or q <return> to quit---

Not sure if this is 100% correct as it states that it is ignoring excess command line arguments. Also I dont seem to have permission to access .cache. I am fairly new to Linux so am probably...

Read more...

Adam Dingle (adam-yorba) wrote :

Sam,

there was a typo in the command line Jim suggested. It should be

$ SHOTWELL_LOG=1 gdb shotwell 2>&1 | tee shotwell.gdb

Could you try again, and then attach shotwell.gdb and ~/.cache/shotwell/shotwell.log to this ticket?

Hi,

Unfortunately my Hard Disk died on Sunday and I have had to re-build my PC. I can unfortunately no longer produce the error.

Thanks for all the help.

Sam

Jim Nelson (yorba-jim) wrote :

I don't think we can keep this open without more information or a reproducible case here. I'm setting this to closed unless someone else can reproduce it.

Changed in shotwell (Ubuntu):
status: New → Incomplete
Omer Akram (om26er) wrote :

> Unfortunately my Hard Disk died on Sunday and I have had to re-build my PC

closing this bug but feel free to report any other bugs you may find.

Changed in shotwell (Ubuntu):
status: Incomplete → Invalid
Jim Nelson (yorba-jim) wrote :

Another user has reported to us what appears to be the same problem: http://trac.yorba.org/ticket/2881. Investigating.

Changed in shotwell (Ubuntu):
status: Invalid → New
Omer Akram (om26er) on 2010-12-03
Changed in shotwell (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Changed in shotwell:
status: Unknown → Confirmed
Changed in shotwell:
status: Confirmed → New
Changed in shotwell:
status: New → Invalid
Omer Akram (om26er) wrote :

per upstream comment

This bug is old and not reproducible, so I'm closing it. If this still affects anyone with a current Shotwell build, feel free to reopen.

Changed in shotwell (Ubuntu):
status: Triaged → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

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