[Digikam-devel] [digikam] [Bug 275157] Digikam crashes while removing tags from images

Jeff Dooley via KDE Bugzilla bugzilla_noreply at kde.org
Sun Dec 20 19:21:58 GMT 2015


https://bugs.kde.org/show_bug.cgi?id=275157

Jeff Dooley <jfd5xte at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jfd5xte at gmail.com

--- Comment #6 from Jeff Dooley <jfd5xte at gmail.com> ---
I've seen this crash many times. My current setup is:
Kubuntu 15.10, KDE Plasma 5.4.2, Qt 5.4.2, Kernel 4.2.0-22-generic
Digikam 4.12.0, based on KDE Development platform 4.14.13

At the dev's request, I installed digikam-dbg and valgrind via the Kubuntu
packages. Based on the reports below, it now appears that these crashes may not
have anything to do with digikam per se. If there is anything else I can do to
help, please let me know. Thanks.


KDE Crash Handler
-----------------------------
Executable: memcheck-amd64-linux PID: 3563 Signal: Aborted (6) Time: 12/20/15
11:09:54 AM
The generated crash information is not useful
-----------------------------
Application: digiKam (memcheck-amd64-linux), signal: Aborted
[Current thread is 1 (LWP 3563)]

Thread 1 (LWP 3563):
#0  0x000000003809c189 in do_syscall_WRK ()
#1  0x000000003809c26d in vgPlain_do_syscall (sysno=sysno at entry=0,
a1=<optimized out>, a2=a2 at entry=34409733776, a3=a3 at entry=1, a4=a4 at entry=0,
a5=a5 at entry=0, a6=0, a7=0, a8=0) at m_syscall.c:956
#2  0x00000000380845d3 in vgPlain_read (fd=<optimized out>,
buf=buf at entry=0x802fade90, count=count at entry=1) at m_libcfile.c:204
#3  0x0000000038135a86 in vgModuleLocal_sema_down (sema=0x802001700,
as_LL=<optimized out>) at m_scheduler/sema.c:109
#4  0x00000000380d326e in vgPlain_acquire_BigLock_LL (who=0x0) at
m_scheduler/scheduler.c:356
#5  vgPlain_acquire_BigLock (tid=tid at entry=1, who=who at entry=0x381b1007
"VG_(scheduler):timeslice") at m_scheduler/scheduler.c:280
#6  0x00000000380d3ec2 in vgPlain_scheduler (tid=tid at entry=1) at
m_scheduler/scheduler.c:1303
#7  0x00000000380e3927 in thread_wrapper (tidW=1) at
m_syswrap/syswrap-linux.c:102
#8  run_a_thread_NORETURN (tidW=1) at m_syswrap/syswrap-linux.c:155
#9  0x0000000000000000 in ?? ()


Valgrind log
-----------------------------
==3563== Memcheck, a memory error detector
==3563== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==3563== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==3563== Command: digikam
==3563== Parent PID: 1928
==3563== 
==3563== Invalid read of size 1
==3563==    at 0xB9277B4: getmntent_r (mntent_r.c:139)
==3563==    by 0x8E3C4AB:
Solid::Backends::Fstab::FstabHandling::_k_updateFstabMountPointsCache() (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8E3D36F: Solid::Backends::Fstab::FstabHandling::deviceList()
(in /usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8E38CEA:
Solid::Backends::Fstab::FstabManager::FstabManager(QObject*) (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBA0FD: Solid::ManagerBasePrivate::loadBackends() (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBBA76: Solid::DeviceManagerPrivate::DeviceManagerPrivate()
(in /usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBBC64: Solid::DeviceManagerStorage::ensureManagerCreated()
(in /usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBC06B: Solid::DeviceNotifier::instance() (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x6489346: Digikam::CollectionManager::CollectionManager() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x64893E4: Digikam::CollectionManager::instance() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x5C04C1:
Digikam::AlbumManager::setDatabase(Digikam::DatabaseParameters const&, bool,
QString) (in /usr/bin/digikam)
==3563==    by 0x492BC4: main (in /usr/bin/digikam)
==3563==  Address 0x2aaa364f is 1 bytes before a block of size 4,096 alloc'd
==3563==    at 0x4C2BBCF: malloc (vg_replace_malloc.c:299)
==3563==    by 0xB92754D: allocate (mntent.c:35)
==3563==    by 0xE3D836A: __pthread_once_slow (pthread_once.c:114)
==3563==    by 0xB9275C3: getmntent (mntent.c:44)
==3563==    by 0x8E3C4AB:
Solid::Backends::Fstab::FstabHandling::_k_updateFstabMountPointsCache() (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8E3D36F: Solid::Backends::Fstab::FstabHandling::deviceList()
(in /usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8E38CEA:
Solid::Backends::Fstab::FstabManager::FstabManager(QObject*) (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBA0FD: Solid::ManagerBasePrivate::loadBackends() (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBBA76: Solid::DeviceManagerPrivate::DeviceManagerPrivate()
(in /usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBBC64: Solid::DeviceManagerStorage::ensureManagerCreated()
(in /usr/lib/libsolid.so.4.14.13)
==3563==    by 0x8DBC06B: Solid::DeviceNotifier::instance() (in
/usr/lib/libsolid.so.4.14.13)
==3563==    by 0x6489346: Digikam::CollectionManager::CollectionManager() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563== 
==3563== Thread 9 Thread (pooled):
==3563== Conditional jump or move depends on uninitialised value(s)
==3563==    at 0x2D21E6B7: picReadHeader(QIODevice*, PICHeader*, bool) (in
/usr/lib/kde4/plugins/imageformats/kimg_pic.so)
==3563==    by 0x2D21FC81: SoftimagePICHandler::canRead(QIODevice*) (in
/usr/lib/kde4/plugins/imageformats/kimg_pic.so)
==3563==    by 0x2D21F5AC: SoftimagePICPlugin::capabilities(QIODevice*,
QByteArray const&) const (in /usr/lib/kde4/plugins/imageformats/kimg_pic.so)
==3563==    by 0x99936B9: createReadHandlerHelper(QIODevice*, QByteArray
const&, bool, bool) [clone .constprop.20] (in
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==3563==    by 0x9994544: QImageReaderPrivate::initHandler() (in
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==3563==    by 0x9995DD7: QImageReader::read(QImage*) (in
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==3563==    by 0x9995FC3: QImageReader::read() (in
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==3563==    by 0x9990CF4: QImage::fromData(unsigned char const*, int, char
const*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==3563==    by 0x9990DE3: QImage::loadFromData(unsigned char const*, int, char
const*) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==3563==    by 0x531B722: KExiv2Iface::KExiv2::getImagePreview(QImage&) const
(in /usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x6B140D1:
Digikam::ThumbnailCreator::loadImagePreview(Digikam::DMetadata const&) const
(in /usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x6B1512F:
Digikam::ThumbnailCreator::createThumbnail(Digikam::ThumbnailInfo const&, QRect
const&) const (in /usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563== 
==3563== Thread 7 Thread (pooled):
==3563== Syscall param msync(start) points to uninitialised byte(s)
==3563==    at 0xB92A7DD: ??? (syscall-template.S:81)
==3563==    by 0xC0D6808: Exiv2::MemIo::~MemIo() (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC11C2D3: Exiv2::ExifParser::encode(std::vector<unsigned char,
std::allocator<unsigned char> >&, unsigned char const*, unsigned int,
Exiv2::ByteOrder, Exiv2::ExifData const&) (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC13598E: ??? (in /usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC136D58: Exiv2::JpegBase::writeMetadata() (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0x531219D:
KExiv2Iface::KExiv2::Private::saveOperations(QFileInfo const&,
std::auto_ptr<Exiv2::Image>) const (in /usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x5314D63: KExiv2Iface::KExiv2::Private::saveToFile(QFileInfo
const&) const (in /usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x530DF92: KExiv2Iface::KExiv2::save(QString const&) const (in
/usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x530F908: KExiv2Iface::KExiv2::applyChanges() const (in
/usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x6AA56D9: Digikam::DMetadata::applyChanges() const (in
/usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x64CE85:
Digikam::MetadataHub::writeToMetadata(Digikam::ImageInfo,
Digikam::MetadataHub::WriteMode, Digikam::MetadataSettingsContainer const&) (in
/usr/bin/digikam)
==3563==    by 0x656A3B:
Digikam::FileActionMngrFileWorker::writeMetadata(Digikam::FileActionImageInfoList,
Digikam::MetadataHub*) (in /usr/bin/digikam)
==3563==  Address 0x3ff253b2 is 34 bytes inside a block of size 40 alloc'd
==3563==    at 0x4C2C12F: operator new(unsigned long) (vg_replace_malloc.c:333)
==3563==    by 0xC0D66CE: Exiv2::MemIo::MemIo() (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC11AF44: Exiv2::ExifParser::encode(std::vector<unsigned char,
std::allocator<unsigned char> >&, unsigned char const*, unsigned int,
Exiv2::ByteOrder, Exiv2::ExifData const&) (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC13598E: ??? (in /usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC136D58: Exiv2::JpegBase::writeMetadata() (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0x531219D:
KExiv2Iface::KExiv2::Private::saveOperations(QFileInfo const&,
std::auto_ptr<Exiv2::Image>) const (in /usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x5314D63: KExiv2Iface::KExiv2::Private::saveToFile(QFileInfo
const&) const (in /usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x530DF92: KExiv2Iface::KExiv2::save(QString const&) const (in
/usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x530F908: KExiv2Iface::KExiv2::applyChanges() const (in
/usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x6AA56D9: Digikam::DMetadata::applyChanges() const (in
/usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x64CE85:
Digikam::MetadataHub::writeToMetadata(Digikam::ImageInfo,
Digikam::MetadataHub::WriteMode, Digikam::MetadataSettingsContainer const&) (in
/usr/bin/digikam)
==3563==    by 0x656A3B:
Digikam::FileActionMngrFileWorker::writeMetadata(Digikam::FileActionImageInfoList,
Digikam::MetadataHub*) (in /usr/bin/digikam)
==3563== 
==3563== Syscall param msync(start) points to uninitialised byte(s)
==3563==    at 0xB92A7DD: ??? (syscall-template.S:81)
==3563==    by 0xC0D6808: Exiv2::MemIo::~MemIo() (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC11C2D3: Exiv2::ExifParser::encode(std::vector<unsigned char,
std::allocator<unsigned char> >&, unsigned char const*, unsigned int,
Exiv2::ByteOrder, Exiv2::ExifData const&) (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0x5324CC4: KExiv2Iface::KExiv2::getExifEncoded(bool) const (in
/usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x694928A: Digikam::DImgLoader::uniqueHash(QString const&,
Digikam::DImg const&, bool) (in /usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x691EB1B: Digikam::DImg::getUniqueHash(QString const&) (in
/usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x64E2BE6: Digikam::ImageScanner::uniqueHash() const (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x64ED78D: Digikam::ImageScanner::loadFromDisk() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x64ED998: Digikam::ImageScanner::rescan() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x647E5C5: Digikam::CollectionScanner::rescanFile(QFileInfo
const&, Digikam::ItemScanInfo const&) (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x647E897: Digikam::CollectionScanner::scanFileNormal(QFileInfo
const&, Digikam::ItemScanInfo const&) (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x647FDDD: Digikam::CollectionScanner::scanFile(QFileInfo
const&, int, long long, Digikam::CollectionScanner::FileScanMode) (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==  Address 0x354a5552 is 34 bytes inside a block of size 40 alloc'd
==3563==    at 0x4C2C12F: operator new(unsigned long) (vg_replace_malloc.c:333)
==3563==    by 0xC0D66CE: Exiv2::MemIo::MemIo() (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0xC11AF44: Exiv2::ExifParser::encode(std::vector<unsigned char,
std::allocator<unsigned char> >&, unsigned char const*, unsigned int,
Exiv2::ByteOrder, Exiv2::ExifData const&) (in
/usr/lib/x86_64-linux-gnu/libexiv2.so.14.0.0)
==3563==    by 0x5324CC4: KExiv2Iface::KExiv2::getExifEncoded(bool) const (in
/usr/lib/libkexiv2.so.11.3.0)
==3563==    by 0x694928A: Digikam::DImgLoader::uniqueHash(QString const&,
Digikam::DImg const&, bool) (in /usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x691EB1B: Digikam::DImg::getUniqueHash(QString const&) (in
/usr/lib/digikam/libdigikamcore.so.4.12.0)
==3563==    by 0x64E2BE6: Digikam::ImageScanner::uniqueHash() const (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x64ED78D: Digikam::ImageScanner::loadFromDisk() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x64ED998: Digikam::ImageScanner::rescan() (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x647E5C5: Digikam::CollectionScanner::rescanFile(QFileInfo
const&, Digikam::ItemScanInfo const&) (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x647E897: Digikam::CollectionScanner::scanFileNormal(QFileInfo
const&, Digikam::ItemScanInfo const&) (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563==    by 0x647FDDD: Digikam::CollectionScanner::scanFile(QFileInfo
const&, int, long long, Digikam::CollectionScanner::FileScanMode) (in
/usr/lib/digikam/libdigikamdatabase.so.4.12.0)
==3563== 
==3563== Thread 4 QInotifyFileSystemWatcherEngine:
==3563== Invalid read of size 2
==3563==    at 0xACD5A4E: socketNotifierSourceCheck(_GSource*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0x11DCAC20: g_main_context_check (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.1)
==3563==    by 0x11DCB18F: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.1)
==3563==    by 0x11DCB2FB: g_main_context_iteration (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.1)
==3563==    by 0xACD620D:
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xACA40D0:
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xACA4444:
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAB934F8: QThread::exec() (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAC84132: QInotifyFileSystemWatcherEngine::run() (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAB95D1B: QThreadPrivate::start(void*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xE3D16A9: start_thread (pthread_create.c:333)
==3563==    by 0xB92FEEC: clone (clone.S:109)
==3563==  Address 0x29301856 is 6 bytes inside a block of size 16 free'd
==3563==    at 0x4C2D28B: operator delete(void*) (vg_replace_malloc.c:575)
==3563==    by 0xACD5A4D: socketNotifierSourceCheck(_GSource*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0x11DCAC20: g_main_context_check (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.1)
==3563==    by 0x11DCB18F: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.1)
==3563==    by 0x11DCB2FB: g_main_context_iteration (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.1)
==3563==    by 0xACD620D:
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xACA40D0:
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xACA4444:
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAB934F8: QThread::exec() (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAC84132: QInotifyFileSystemWatcherEngine::run() (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAB95D1B: QThreadPrivate::start(void*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xE3D16A9: start_thread (pthread_create.c:333)
==3563==  Block was alloc'd at
==3563==    at 0x4C2C12F: operator new(unsigned long) (vg_replace_malloc.c:333)
==3563==    by 0xACD6412:
QEventDispatcherGlib::registerSocketNotifier(QSocketNotifier*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xACC445A: QSocketNotifier::QSocketNotifier(int,
QSocketNotifier::Type, QObject*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAC8410B: QInotifyFileSystemWatcherEngine::run() (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xAB95D1B: QThreadPrivate::start(void*) (in
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==3563==    by 0xE3D16A9: start_thread (pthread_create.c:333)
==3563==    by 0xB92FEEC: clone (clone.S:109)
==3563==

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list