[Digikam-devel] Several crashes of digikam

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[Digikam-devel] Several crashes of digikam

Heiner Lamprecht
Hi everybody,

at the moment, digikam is very unstable on my machine.  I made an
svn update this morning and compiled all the stuff.  While playing
a little bit with the app, I had three crashes.

1. When opening an image in IE (see digikam_crash_1.log)

2. During start of the application (see digikam_crash_2.log)

3. Again when opening an image in IE, but the error message
   seems to be different (digikam_crash_3.log)

Is there something messed up with my installation?  Is my database
corrupt?  Or are these real bugs in the code?

I would like to have some feedback before adding bugs to BKO.


Thanks,


    Heiner

--
    heiner at heiner-lamprecht dot net    GnuPG - Key: 9859E373
  Fingerprint:  3770 7947 F917 94EF 8717 BADB 0139 7554 9859 E373

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel

digikam_crash_3.log (1K) Download Attachment
digikam_crash_2.log (4K) Download Attachment
digikam_crash_1.log (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Several crashes of digikam

Marcel Wiesweg
Am Sonntag 21 Mai 2006 14:05 schrieb Heiner Lamprecht:
> Hi everybody,
>
> at the moment, digikam is very unstable on my machine.  I made an
> svn update this morning and compiled all the stuff.  While playing
> a little bit with the app, I had three crashes.
>
> 1. When opening an image in IE (see digikam_crash_1.log)

This log differs from the others in that it does not provide debug options.
But anyway, I dont know what might cause this.

>
> 2. During start of the application (see digikam_crash_2.log)

This crash comes from libexiv2.

>
> 3. Again when opening an image in IE, but the error message
>    seems to be different (digikam_crash_3.log)

This log appears to be useless.

For all three bugs: Are they reproducable? Then try to reproduce them running
digikam under gdb and look if it gives a better backtrace.
For bug 2, if there is a specific image causing this, it might be a libexiv2
issue. Which version do you have installed?
Please check your digikam installation, did you do a make install from the SVN
version? Are there any old stale libraries?

Marcel

>
> Is there something messed up with my installation?  Is my database
> corrupt?  Or are these real bugs in the code?
>
> I would like to have some feedback before adding bugs to BKO.
>
>
> Thanks,
>
>
>     Heiner
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Several crashes of digikam

Heiner Lamprecht
On Sunday 21 May 2006 16:20, Marcel Wiesweg wrote:

> Am Sonntag 21 Mai 2006 14:05 schrieb Heiner Lamprecht:
> > Hi everybody,
> >
> > at the moment, digikam is very unstable on my machine.  I made
> > an svn update this morning and compiled all the stuff.  While
> > playing a little bit with the app, I had three crashes.
> >
> > 1. When opening an image in IE (see digikam_crash_1.log)
>
> This log differs from the others in that it does not provide
> debug options. But anyway, I dont know what might cause this.

Oops, sorry.  A longer description of (most likely) the same is
found at http://bugs.kde.org/show_bug.cgi?id=127272

> > 2. During start of the application (see digikam_crash_2.log)
>
> This crash comes from libexiv2.
>
> > 3. Again when opening an image in IE, but the error message
> >    seems to be different (digikam_crash_3.log)
>
> This log appears to be useless.
>
> For all three bugs: Are they reproducable?

Not directly.  digikam crashes every now and then.  But I haven't
found any pattern in the crashes.

> For bug 2, if there is a specific image causing this,
> it might be a libexiv2 issue. Which version do you have
> installed?

I could say, which image it caused:  The crash appeared during
startup of the application.  The mainwindow was already opened and
digikam was starting to display the thumbnails.

> Please check your digikam installation, did you do a make install
> from the SVN version?

Yes.


    Heiner

--
    heiner at heiner-lamprecht dot net    GnuPG - Key: 9859E373
  Fingerprint:  3770 7947 F917 94EF 8717 BADB 0139 7554 9859 E373
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Several crashes of digikam

Gilles Caulier-2
In reply to this post by Marcel Wiesweg
Le Dimanche 21 Mai 2006 04:20 PM, Marcel Wiesweg a écrit :

> Am Sonntag 21 Mai 2006 14:05 schrieb Heiner Lamprecht:
> > Hi everybody,
> >
> > at the moment, digikam is very unstable on my machine.  I made an
> > svn update this morning and compiled all the stuff.  While playing
> > a little bit with the app, I had three crashes.
> >
> > 1. When opening an image in IE (see digikam_crash_1.log)
>
> This log differs from the others in that it does not provide debug options.
> But anyway, I dont know what might cause this.
>
> > 2. During start of the application (see digikam_crash_2.log)
>
> This crash comes from libexiv2.

yes. I'm currently in discussion with Exiv2 author about this subject, because
i can reproduce this crash since 1 week on 1 computer in my office using
Mandriva 2005, but never on all others computer using Mandriva 2006 !!! I
don"t know why...

Like suggested Exiv2 author, there is a problem in dmetaloader.cpp lines 87,
94 and 101 : reference = reference !!! Look the message from Andreas below :

// ------------------------------------------------------------------------
...
I suspect the problem is here:

bool DMetaLoader::loadWithExiv2(const QString& filePath)
{
    try
    {    
        if (filePath.isEmpty())
            return false;

        Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const char*)
                                      (QFile::encodeName(filePath)));
        image->readMetadata();

        // Image comments ---------------------------------

[snip]

        // Exif metadata ----------------------------------
       
        exifMetadata() = image->exifData();

Both, exifMetadata() and image->exifData() return a reference only, the
metadata is not copied, it is still in the container owned by the image.

        if (!exifMetadata().empty())
            m_hasExif = true;

[snip]

        return true;
    }

The Image::AutoPtr goes out of scope and the image is deleted. All references
to the metadata inside the image become invalid and future access through
such references have undefined behaviour.

Could that be it?
...
// ------------------------------------------------------------------------

It's easy to fix it, and this is must be done in all cases. Marcel, if you
have some time to do it, feel free to do, i'm busy today.

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: [Digikam-devel] Several crashes of digikam

Marcel Wiesweg
> Like suggested Exiv2 author, there is a problem in dmetaloader.cpp lines
> 87, 94 and 101 : reference = reference !!! Look the message from Andreas
> below :
>
> // ------------------------------------------------------------------------
> ...
> I suspect the problem is here:
>
> bool DMetaLoader::loadWithExiv2(const QString& filePath)
> {
>     try
>     {
>         if (filePath.isEmpty())
>             return false;
>
>         Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open((const
> char*) (QFile::encodeName(filePath))); image->readMetadata();
>
>         // Image comments ---------------------------------
>
> [snip]
>
>         // Exif metadata ----------------------------------
>
>         exifMetadata() = image->exifData();
>
> Both, exifMetadata() and image->exifData() return a reference only, the
> metadata is not copied, it is still in the container owned by the image.
>
>         if (!exifMetadata().empty())
>             m_hasExif = true;
>
> [snip]
>
>         return true;
>     }
>
> The Image::AutoPtr goes out of scope and the image is deleted. All
> references to the metadata inside the image become invalid and future
> access through such references have undefined behaviour.
>
> Could that be it?

If you check with gdb, you can see that ExifData::operator= is actually
called. Operator= is doing a deep copy.
Reference = reference should be all right, operator= takes a reference, and
for the left-hand variable operator= is called. Or am I missing the point?

I cannot reproduce the crashes, and valgrind does not give me any errors.

Marcel

> ...
> // ------------------------------------------------------------------------
>
> It's easy to fix it, and this is must be done in all cases. Marcel, if you
> have some time to do it, feel free to do, i'm busy today.
>
> Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel