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

            Bug ID: 386098
           Summary: crash when adding pictures to a running digikam
           Product: digikam
           Version: 5.8.0
          Platform: Gentoo Packages
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Albums-Engine
          Assignee: digikam-bugs-n...@kde.org
          Reporter: johannes.hi...@datenkhaos.de
  Target Milestone: ---

This is rather hard to reproduce. It happens when adding pictures into a
collection of a running digikam. In this case I've moved with dolphin several
folders with pictures into a digikam collection. This kicked in digikams scan
for new items an after some time it crashed.

the backtrace:

*** Error in `/usr/bin/digikam': malloc(): smallbin double linked list
corrupted: 0x0000000003481f90 ***

Thread 1 "digikam" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff3d00506 in __GI_abort () at abort.c:90
#2  0x00007ffff3d447b7 in __libc_message (action=action@entry=(do_abort |
do_backtrace), fmt=fmt@entry=0x7ffff3e540a0 "*** Error in `%s': %s: 0x%s
***\n") at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007ffff3d4c2e9 in malloc_printerr (action=<optimized out>,
str=0x7ffff3e547c0 "malloc(): smallbin double linked list corrupted",
ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5423
#4  0x00007ffff3d4faf9 in _int_malloc (av=0x7ffff4084c20 <main_arena>,
bytes=<optimized out>) at malloc.c:3593
#5  0x00007ffff3d51525 in __GI___libc_malloc (bytes=24) at malloc.c:3083
#6  0x00007ffff4746d51 in QArrayData::allocate (objectSize=objectSize@entry=1,
alignment=alignment@entry=8, capacity=capacity@entry=0, options=...,
options@entry=...) at tools/qarraydata.cpp:118
#7  0x00007ffff474d730 in QTypedArrayData<char>::allocate (options=...,
capacity=0) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:223
#8  QTypedArrayData<char>::fromRawData (options=..., n=17, data=0x7fffffffb5f0
"resetInternalData()") at
../../include/QtCore/../../src/corelib/tools/qarraydata.h:244
#9  QByteArray::fromRawData (data=data@entry=0x7fffffffb5f0
"resetInternalData()", size=size@entry=17) at tools/qbytearray.cpp:4230
#10 0x00007ffff48f4660 in QMetaObjectPrivate::decodeMethodSignature
(signature=0x7fffffffb5f0 "resetInternalData()", types=...) at
kernel/qmetaobject.cpp:688
#11 0x00007ffff48f8880 in QMetaObject::indexOfMethod
(this=this@entry=0x7ffff5662480 <QCompletionModel::staticMetaObject>,
method=<optimized out>) at kernel/qmetaobject.cpp:645
#12 0x00007ffff48fa97b in QMetaObject::invokeMethod (obj=obj@entry=0x126a1f0,
member=member@entry=0x7ffff4994c1e "resetInternalData",
type=type@entry=Qt::AutoConnection, ret=..., val0=..., val1=..., val2=...,
val3=..., val4=..., val5=..., val6=..., 
    val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1475
#13 0x00007ffff489435b in QMetaObject::invokeMethod (val9=..., val8=...,
val7=..., val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=...,
member=0x7ffff4994c1e "resetInternalData", obj=0x126a1f0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs.h:467
#14 QAbstractItemModel::endResetModel (this=this@entry=0x126a1f0) at
itemmodels/qabstractitemmodel.cpp:3229
#15 0x00007ffff54bd3a7 in QCompletionModel::filter (this=0x126a1f0, parts=...)
at util/qcompleter.cpp:423
#16 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x1264c20,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7fffffffba10) at kernel/qobject.cpp:3766
#17 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x1264c20,
m=m@entry=0x7ffff4b34680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffba10)
at kernel/qobject.cpp:3628
#18 0x00007ffff489254c in QAbstractItemModel::dataChanged
(this=this@entry=0x1264c20, _t1=..., _t2=..., _t3=...) at
.moc/moc_qabstractitemmodel.cpp:568
#19 0x00007ffff48bb614 in QSortFilterProxyModelPrivate::_q_sourceDataChanged
(this=<optimized out>, source_top_left=..., source_bottom_right=..., roles=...)
at itemmodels/qsortfilterproxymodel.cpp:1258
#20 0x00007ffff48bc138 in QSortFilterProxyModel::qt_static_metacall
(_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized
out>) at .moc/moc_qsortfilterproxymodel.cpp:204
#21 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x1263d20,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7fffffffbd00) at kernel/qobject.cpp:3766
#22 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x1263d20,
m=m@entry=0x7ffff4b34680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffbd00)
at kernel/qobject.cpp:3628
#23 0x00007ffff489254c in QAbstractItemModel::dataChanged
(this=this@entry=0x1263d20, _t1=..., _t2=..., _t3=...) at
.moc/moc_qabstractitemmodel.cpp:568
#24 0x00007ffff48bb614 in QSortFilterProxyModelPrivate::_q_sourceDataChanged
(this=<optimized out>, source_top_left=..., source_bottom_right=..., roles=...)
at itemmodels/qsortfilterproxymodel.cpp:1258
#25 0x00007ffff48bc138 in QSortFilterProxyModel::qt_static_metacall
(_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized
out>) at .moc/moc_qsortfilterproxymodel.cpp:204
#26 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x1263670,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7fffffffbff0) at kernel/qobject.cpp:3766
#27 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x1263670,
m=m@entry=0x7ffff4b34680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffbff0)
at kernel/qobject.cpp:3628
#28 0x00007ffff489254c in QAbstractItemModel::dataChanged
(this=this@entry=0x1263670, _t1=..., _t2=..., _t3=...) at
.moc/moc_qabstractitemmodel.cpp:568
#29 0x00007ffff76eb3c4 in Digikam::AbstractCountingAlbumModel::updateCount
(this=this@entry=0x1263670, album=album@entry=0x5654820) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/models/abstractalbummodel.cpp:742
#30 0x00007ffff76ebf9f in
Digikam::AbstractCountingAlbumModel::includeChildrenCount
(this=this@entry=0x1263670, index=...) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/models/abstractalbummodel.cpp:680
#31 0x00007ffff770cd07 in Digikam::AbstractCountingAlbumTreeView::slotCollapsed
(this=<optimized out>, index=...) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/album/albumtreeview.cpp:1242
#32 0x00007ffff770cde5 in
Digikam::AbstractCountingAlbumTreeView::updateShowCountState (this=0x1257b50,
index=..., recurse=<optimized out>) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/album/albumtreeview.cpp:1226
#33 0x00007ffff7713f63 in Digikam::AbstractCountingAlbumTreeView::rowsInserted
(this=this@entry=0x1257b50, parent=..., start=start@entry=42, end=end@entry=42)
at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/album/albumtreeview.cpp:1262
#34 0x00007ffff7713fbc in Digikam::AbstractCheckableAlbumTreeView::rowsInserted
(this=0x1257b50, parent=..., start=42, end=42) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/album/albumtreeview.cpp:1417
#35 0x00007ffff53bc482 in QAbstractItemView::qt_static_metacall (_o=<optimized
out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at
.moc/moc_qabstractitemview.cpp:412
#36 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x1264c20,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=10,
argv=argv@entry=0x7fffffffc370) at kernel/qobject.cpp:3766
#37 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x1264c20,
m=m@entry=0x7ffff4b34680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7fffffffc370)
at kernel/qobject.cpp:3628
#38 0x00007ffff489278e in QAbstractItemModel::rowsInserted
(this=this@entry=0x1264c20, _t1=..., _t2=<optimized out>, _t3=<optimized out>,
_t4=...) at .moc/moc_qabstractitemmodel.cpp:603
#39 0x00007ffff48995eb in QAbstractItemModel::endInsertRows (this=0x1264c20) at
itemmodels/qabstractitemmodel.cpp:2709
#40 0x00007ffff48b5efd in QSortFilterProxyModelPrivate::insert_source_items
(this=this@entry=0x1264c70, source_to_proxy=..., proxy_to_source=...,
source_items=..., source_parent=..., orient=orient@entry=Qt::Vertical,
emit_signal=true)
    at itemmodels/qsortfilterproxymodel.cpp:722
#41 0x00007ffff48b931e in QSortFilterProxyModelPrivate::source_items_inserted
(this=this@entry=0x1264c70, source_parent=..., start=<optimized out>,
end=<optimized out>, orient=orient@entry=Qt::Vertical) at
itemmodels/qsortfilterproxymodel.cpp:833
#42 0x00007ffff48b95ef in QSortFilterProxyModelPrivate::_q_sourceRowsInserted
(this=0x1264c70, source_parent=..., start=<optimized out>, end=<optimized out>)
at itemmodels/qsortfilterproxymodel.cpp:1398
#43 0x00007ffff48bc1b9 in QSortFilterProxyModel::qt_static_metacall
(_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized
out>) at .moc/moc_qsortfilterproxymodel.cpp:211
#44 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x1263d20,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=10,
argv=argv@entry=0x7fffffffc700) at kernel/qobject.cpp:3766
#45 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x1263d20,
m=m@entry=0x7ffff4b34680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7fffffffc700)
at kernel/qobject.cpp:3628
#46 0x00007ffff489278e in QAbstractItemModel::rowsInserted
(this=this@entry=0x1263d20, _t1=..., _t2=<optimized out>, _t3=<optimized out>,
_t4=...) at .moc/moc_qabstractitemmodel.cpp:603
#47 0x00007ffff48995eb in QAbstractItemModel::endInsertRows (this=0x1263d20) at
itemmodels/qabstractitemmodel.cpp:2709
#48 0x00007ffff48b5efd in QSortFilterProxyModelPrivate::insert_source_items
(this=this@entry=0x1263d80, source_to_proxy=..., proxy_to_source=...,
source_items=..., source_parent=..., orient=orient@entry=Qt::Vertical,
emit_signal=true)
    at itemmodels/qsortfilterproxymodel.cpp:722
---Type <return> to continue, or q <return> to quit---
#49 0x00007ffff48b931e in QSortFilterProxyModelPrivate::source_items_inserted
(this=this@entry=0x1263d80, source_parent=..., start=<optimized out>,
end=<optimized out>, orient=orient@entry=Qt::Vertical) at
itemmodels/qsortfilterproxymodel.cpp:833
#50 0x00007ffff48b95ef in QSortFilterProxyModelPrivate::_q_sourceRowsInserted
(this=0x1263d80, source_parent=..., start=<optimized out>, end=<optimized out>)
at itemmodels/qsortfilterproxymodel.cpp:1398
#51 0x00007ffff48bc1b9 in QSortFilterProxyModel::qt_static_metacall
(_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized
out>) at .moc/moc_qsortfilterproxymodel.cpp:211
#52 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x1263670,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=10,
argv=argv@entry=0x7fffffffca90) at kernel/qobject.cpp:3766
#53 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x1263670,
m=m@entry=0x7ffff4b34680 <QAbstractItemModel::staticMetaObject>,
local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7fffffffca90)
at kernel/qobject.cpp:3628
#54 0x00007ffff489278e in QAbstractItemModel::rowsInserted
(this=this@entry=0x1263670, _t1=..., _t2=<optimized out>, _t3=<optimized out>,
_t4=...) at .moc/moc_qabstractitemmodel.cpp:603
#55 0x00007ffff48995eb in QAbstractItemModel::endInsertRows
(this=this@entry=0x1263670) at itemmodels/qabstractitemmodel.cpp:2709
#56 0x00007ffff76e953b in Digikam::AbstractAlbumModel::slotAlbumAdded
(this=0x1263670, album=<optimized out>) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/models/abstractalbummodel.cpp:459
#57 0x00007ffff491345d in QMetaObject::activate
(sender=sender@entry=0x7ffff7dd6460
<_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=1, 
    argv=argv@entry=0x7fffffffcc60) at kernel/qobject.cpp:3766
#58 0x00007ffff4913b67 in QMetaObject::activate
(sender=sender@entry=0x7ffff7dd6460
<_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>,
m=m@entry=0x7ffff7dacec0 <Digikam::AlbumManager::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=1,
argv=argv@entry=0x7fffffffcc60) at kernel/qobject.cpp:3628
#59 0x00007ffff773c6b2 in Digikam::AlbumManager::signalAlbumAdded
(this=this@entry=0x7ffff7dd6460
<_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>,
_t1=<optimized out>, _t1@entry=0x5654820)
    at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999_build/libs/album/digikamalbum_src_autogen/EWIEGA46WW/moc_albummanager.cpp:585
#60 0x00007ffff7727add in Digikam::AlbumManager::insertTAlbum
(this=this@entry=0x7ffff7dd6460
<_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>,
album=0x5654820, parent=parent@entry=0x2d3eed0)
    at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/album/albummanager.cpp:3011
#61 0x00007ffff772a4d7 in Digikam::AlbumManager::scanTAlbums
(this=0x7ffff7dd6460
<_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/album/albummanager.cpp:1650
#62 0x00007ffff773e57f in Digikam::AlbumManager::qt_static_metacall
(_o=0x7ffff7dd6460
<_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>,
_c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999_build/libs/album/digikamalbum_src_autogen/EWIEGA46WW/moc_albummanager.cpp:336
#63 0x00007ffff491345d in QMetaObject::activate (sender=sender@entry=0x8ddb10,
signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7fffffffcf00) at kernel/qobject.cpp:3766
#64 0x00007ffff4913b67 in QMetaObject::activate (sender=sender@entry=0x8ddb10,
m=m@entry=0x7ffff4b35e80 <QTimer::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffcf00)
at kernel/qobject.cpp:3628
#65 0x00007ffff491f747 in QTimer::timeout (this=this@entry=0x8ddb10, _t1=...)
at .moc/moc_qtimer.cpp:201
#66 0x00007ffff491fa28 in QTimer::timerEvent (this=0x8ddb10, e=<optimized out>)
at kernel/qtimer.cpp:255
#67 0x00007ffff49141cb in QObject::event (this=0x8ddb10, e=<optimized out>) at
kernel/qobject.cpp:1268
#68 0x00007ffff517785c in QApplicationPrivate::notify_helper
(this=this@entry=0x703580, receiver=receiver@entry=0x8ddb10,
e=e@entry=0x7fffffffd1f0) at kernel/qapplication.cpp:3722
#69 0x00007ffff517eee6 in QApplication::notify (this=0x7fffffffd580,
receiver=0x8ddb10, e=0x7fffffffd1f0) at kernel/qapplication.cpp:3481
#70 0x00007ffff48ead96 in QCoreApplication::notifyInternal2 (receiver=0x8ddb10,
event=event@entry=0x7fffffffd1f0) at kernel/qcoreapplication.cpp:1018
#71 0x00007ffff493a84b in QCoreApplication::sendEvent (event=0x7fffffffd1f0,
receiver=<optimized out>) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#72 QTimerInfoList::activateTimers (this=this@entry=0x734400) at
kernel/qtimerinfo_unix.cpp:643
#73 0x00007ffff493b114 in timerSourceDispatch (source=source@entry=0x7343a0) at
kernel/qeventdispatcher_glib.cpp:182
#74 0x00007fffec66ff5e in g_main_dispatch (context=0x7fffd4004fc0) at
/var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:3234
#75 g_main_context_dispatch (context=context@entry=0x7fffd4004fc0) at
/var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:3899
#76 0x00007fffec670190 in g_main_context_iterate
(context=context@entry=0x7fffd4004fc0, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at
/var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:3972
#77 0x00007fffec67021c in g_main_context_iteration (context=0x7fffd4004fc0,
may_block=may_block@entry=1) at
/var/tmp/portage/dev-libs/glib-2.52.3/work/glib-2.52.3/glib/gmain.c:4033
#78 0x00007ffff493b53f in QEventDispatcherGlib::processEvents (this=0x759c60,
flags=...) at kernel/qeventdispatcher_glib.cpp:423
#79 0x00007ffff48e9ba2 in QEventLoop::exec (this=this@entry=0x7fffffffd440,
flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#80 0x00007ffff48f1fac in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1291
#81 0x00007ffff4c3341c in QGuiApplication::exec () at
kernel/qguiapplication.cpp:1679
#82 0x00007ffff51777b5 in QApplication::exec () at kernel/qapplication.cpp:2910
#83 0x0000000000406761 in main (argc=<optimized out>, argv=<optimized out>) at
/var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/app/main/main.cpp:285

This time it was SIGABRT cause glibc was involved directly, but I think the
SIGSEGV I've seen before could be the same bug. It looks like another
concurrency problem and is not reliable reproducible. It may need thousands of
pictures, moving into the collection of a running digikam, maybe several
folders.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to