Bug 201810

Summary: Segfault moving files to trash
Product: [Applications] digikam Reporter: Jarle Thorsen <jarlethorsen>
Component: Database-TrashAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, caulier.gilles
Priority: NOR    
Version: 1.0.0   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 5.7.0
Sentry Crash Report:

Description Jarle Thorsen 2009-07-28 21:14:42 UTC
Application that crashed: digikam
Version of the application: 1.0.0-beta1
KDE Version: 4.2.98 (KDE 4.2.98 (KDE 4.3 RC3))
Qt Version: 4.5.1
Operating System: Linux 2.6.28-13-generic x86_64
Distribution: Ubuntu 9.04

What I was doing when the application crashed:
Dont know if I can reproduce. Segfault when trying to move some files to trash.

 -- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 0 (LWP 4178)]

Thread 15 (Thread 0x7f3e88fcf950 (LWP 4199)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f3e94f4ace9 in QWaitCondition::wait (this=0x19f25b8, mutex=0x19f25b0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00000000006b44fb in Digikam::ScanController::run (this=0x19ed620) at /build/buildd/digikam-1.0.0~beta1/digikam/scancontroller.cpp:455
#3  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x19ed620) at thread/qthread_unix.cpp:189
#4  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7f3e84f9c950 (LWP 4215)):
#0  0x00007f3e944ab496 in *__GI___poll (fds=0x1a28740, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f3e8dd0477f in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f3e8dd04a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f3e9505c54e in QEventDispatcherGlib::processEvents (this=0x1b753e0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:326
#4  0x00007f3e950316a2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -2064007136}) at kernel/qeventloop.cpp:149
#5  0x00007f3e95031a6d in QEventLoop::exec (this=0x7f3e84f9c060, flags={i = -2064007056}) at kernel/qeventloop.cpp:200
#6  0x00007f3e94f46d68 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x1b7a710) at thread/qthread_unix.cpp:189
#8  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#9  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7f3e7ffff950 (LWP 4216)):
#0  0x00007f3e8dd04275 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#1  0x00007f3e8dd045ff in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f3e8dd04a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f3e9505c54e in QEventDispatcherGlib::processEvents (this=0x1b74eb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:326
#4  0x00007f3e950316a2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 2147479584}) at kernel/qeventloop.cpp:149
#5  0x00007f3e95031a6d in QEventLoop::exec (this=0x7f3e7ffff060, flags={i = 2147479664}) at kernel/qeventloop.cpp:200
#6  0x00007f3e94f46d68 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x1a234b0) at thread/qthread_unix.cpp:189
#8  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#9  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f3e7f7fe950 (LWP 4217)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f3e94f4ace9 in QWaitCondition::wait (this=0x1d005f0, mutex=0x1d005e8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f3e98897a9c in Digikam::LoadSaveThread::run (this=0x1d005d0) at /build/buildd/digikam-1.0.0~beta1/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x1d005d0) at thread/qthread_unix.cpp:189
#4  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f3e7effd950 (LWP 4218)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f3e94f4ace9 in QWaitCondition::wait (this=0x1d246f0, mutex=0x1d246e8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f3e98897a9c in Digikam::LoadSaveThread::run (this=0x1d246d0) at /build/buildd/digikam-1.0.0~beta1/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x1d246d0) at thread/qthread_unix.cpp:189
#4  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f3e73c21950 (LWP 4239)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:217
#1  0x00007f3e7cf76f91 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f3e72beb950 (LWP 4240)):
#0  0x00007f3e944ad742 in select () from /lib/libc.so.6
#1  0x00007f3e7cfa00a4 in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00007f3e7cf84deb in ?? () from /usr/lib/libxine.so.1
#3  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#4  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f3e723ea950 (LWP 4241)):
#0  0x00007f3e944ab496 in *__GI___poll (fds=0x196f4d0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f3e8dd0477f in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f3e8dd04a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f3e9505c54e in QEventDispatcherGlib::processEvents (this=0x196eda0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:326
#4  0x00007f3e950316a2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1916706768}) at kernel/qeventloop.cpp:149
#5  0x00007f3e95031a6d in QEventLoop::exec (this=0x7f3e723ea010, flags={i = 1916706848}) at kernel/qeventloop.cpp:200
#6  0x00007f3e94f46d68 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f3e7d1d262c in Phonon::Xine::XineThread::run (this=0x196e7a0) at /build/buildd/phonon-4.3.1/xine/xinethread.cpp:143
#8  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x196e7a0) at thread/qthread_unix.cpp:189
#9  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f3e6d85d950 (LWP 4295)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f3e94f4ace9 in QWaitCondition::wait (this=0x2b19690, mutex=0x2b19688, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f3e98897a9c in Digikam::LoadSaveThread::run (this=0x2b19670) at /build/buildd/digikam-1.0.0~beta1/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x2b19670) at thread/qthread_unix.cpp:189
#4  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f3e6e92a950 (LWP 4302)):
#0  0x00007f3e941bd200 in __pthread_mutex_unlock_usercnt (mutex=0x380cfa8, decr=1) at pthread_mutex_unlock.c:64
#1  0x00007f3e8dd044b9 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f3e8dd04a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f3e9505c54e in QEventDispatcherGlib::processEvents (this=0x380ced0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:326
#4  0x00007f3e950316a2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1855103008}) at kernel/qeventloop.cpp:149
#5  0x00007f3e95031a6d in QEventLoop::exec (this=0x7f3e6e92a060, flags={i = 1855103088}) at kernel/qeventloop.cpp:200
#6  0x00007f3e94f46d68 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x380caa0) at thread/qthread_unix.cpp:189
#8  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#9  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f3e71be9950 (LWP 4303)):
#0  postEventSourcePrepare (s=0x380e8f0, timeout=0x7f3e71be8ed4) at kernel/qeventdispatcher_glib.cpp:197
#1  0x00007f3e8dd041e2 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#2  0x00007f3e8dd045ff in ?? () from /usr/lib/libglib-2.0.so.0
#3  0x00007f3e8dd04a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#4  0x00007f3e9505c54e in QEventDispatcherGlib::processEvents (this=0x380a6c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:326
#5  0x00007f3e950316a2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1908314144}) at kernel/qeventloop.cpp:149
#6  0x00007f3e95031a6d in QEventLoop::exec (this=0x7f3e71be9060, flags={i = 1908314224}) at kernel/qeventloop.cpp:200
#7  0x00007f3e94f46d68 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x380ceb0) at thread/qthread_unix.cpp:189
#9  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f3e6f12b950 (LWP 4304)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f3e94f4ace9 in QWaitCondition::wait (this=0x39af390, mutex=0x39af388, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f3e98897a9c in Digikam::LoadSaveThread::run (this=0x39af370) at /build/buildd/digikam-1.0.0~beta1/libs/threadimageio/loadsavethread.cpp:136
#3  0x00007f3e94f49d02 in QThreadPrivate::start (arg=0x39af370) at thread/qthread_unix.cpp:189
#4  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f3e6e05e950 (LWP 4331)):
#0  0x00007f3e944ab496 in *__GI___poll (fds=0x7f3e6e05dfa0, nfds=1, timeout=333) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f3e5588c969 in ?? () from /usr/lib/xine/plugins/1.26/xineplug_ao_out_alsa.so
#2  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f3e55887950 (LWP 4332)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f3e7cf88353 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f3e941ba3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#3  0x00007f3e944b4fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f3e9b5ae750 (LWP 4178)):
[KCrash Handler]
#5  _wordcopy_fwd_aligned (dstp=<value optimized out>, srcp=<value optimized out>, len=2305843009213551560) at wordcopy.c:115
#6  0x00007f3e94451b02 in *__GI_memmove (dest=0x58c7e50, src=<value optimized out>, len=18446744073709551544) at memmove.c:73
#7  0x00007f3e94f6d6a6 in QListData::remove (this=0x1869ad0, i=<value optimized out>, n=0) at /usr/include/bits/string3.h:59
#8  0x00007f3e9849c1c5 in QList<Digikam::ImageInfo>::erase (this=0x1869ad0, afirst={i = 0x7fffa35f9490}, alast={i = 0x7fffa35f9480}) at /usr/include/qt4/QtCore/qlist.h:609
#9  0x00007f3e9849b01f in Digikam::ImageModel::finishIncrementalRefresh (this=0x1b75640) at /build/buildd/digikam-1.0.0~beta1/libs/models/imagemodel.cpp:456
#10 0x00000000005e7d0d in Digikam::ImageAlbumModel::slotResult (this=0x59ddfc0, job=0x59ddfd0) at /build/buildd/digikam-1.0.0~beta1/libs/models/imagealbummodel.cpp:260
#11 0x00000000005e859c in Digikam::ImageAlbumModel::qt_metacall (this=0x1b75640, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa35f9680)
    at /build/buildd/digikam-1.0.0~beta1/obj-x86_64-linux-gnu/digikam/imagealbummodel.moc:108
#12 0x00007f3e950488d2 in QMetaObject::activate (sender=0x56d7c10, from_signal_index=<value optimized out>, to_signal_index=7, argv=0x1ffffffffffdd3c8) at kernel/qobject.cpp:3120
#13 0x00007f3e95687512 in KJob::result (this=0x59ddfc0, _t1=0x56d7c10) at /build/buildd/kde4libs-4.2.98a/obj-x86_64-linux-gnu/kdecore/kjob.moc:188
#14 0x00007f3e9568788f in KJob::emitResult (this=0x56d7c10) at /build/buildd/kde4libs-4.2.98a/kdecore/jobs/kjob.cpp:304
#15 0x00007f3e974c6290 in KIO::SimpleJob::slotFinished (this=0x56d7c10) at /build/buildd/kde4libs-4.2.98a/kio/kio/job.cpp:477
#16 0x00007f3e974c6743 in KIO::TransferJob::slotFinished (this=0x56d7c10) at /build/buildd/kde4libs-4.2.98a/kio/kio/job.cpp:948
#17 0x00007f3e974c1535 in KIO::TransferJob::qt_metacall (this=0x56d7c10, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa35f9a80)
    at /build/buildd/kde4libs-4.2.98a/obj-x86_64-linux-gnu/kio/jobclasses.moc:343
#18 0x00007f3e950488d2 in QMetaObject::activate (sender=0x3821060, from_signal_index=<value optimized out>, to_signal_index=8, argv=0x1ffffffffffdd3c8) at kernel/qobject.cpp:3120
#19 0x00007f3e97582a01 in KIO::SlaveInterface::dispatch (this=0x3821060, _cmd=104, rawdata=<value optimized out>) at /build/buildd/kde4libs-4.2.98a/kio/kio/slaveinterface.cpp:175
#20 0x00007f3e9757f552 in KIO::SlaveInterface::dispatch (this=0x3821060) at /build/buildd/kde4libs-4.2.98a/kio/kio/slaveinterface.cpp:91
#21 0x00007f3e975720d3 in KIO::Slave::gotInput (this=0x3821060) at /build/buildd/kde4libs-4.2.98a/kio/kio/slave.cpp:322
#22 0x00007f3e97574338 in KIO::Slave::qt_metacall (this=0x3821060, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffa35f9ea0) at /build/buildd/kde4libs-4.2.98a/obj-x86_64-linux-gnu/kio/slave.moc:76
#23 0x00007f3e950488d2 in QMetaObject::activate (sender=0x5471340, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x1ffffffffffdd3c8) at kernel/qobject.cpp:3120
#24 0x00007f3e9748f761 in KIO::ConnectionPrivate::dequeue (this=0x56b28a0) at /build/buildd/kde4libs-4.2.98a/kio/kio/connection.cpp:82
#25 0x00007f3e9748fbba in KIO::Connection::qt_metacall (this=0x5471340, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x5633be0)
    at /build/buildd/kde4libs-4.2.98a/obj-x86_64-linux-gnu/kio/connection.moc:73
#26 0x00007f3e95042f28 in QObject::event (this=0x5471340, e=0x58fbec0) at kernel/qobject.cpp:1118
#27 0x00007f3e95bb1b9d in QApplicationPrivate::notify_helper (this=0x1838220, receiver=0x5471340, e=0x58fbec0) at kernel/qapplication.cpp:4057
#28 0x00007f3e95bb9dea in QApplication::notify (this=0x7fffa35fa930, receiver=0x5471340, e=0x58fbec0) at kernel/qapplication.cpp:4022
#29 0x00007f3e96fe171b in KApplication::notify (this=0x7fffa35fa930, receiver=0x5471340, event=0x58fbec0) at /build/buildd/kde4libs-4.2.98a/kdeui/kernel/kapplication.cpp:302
#30 0x00007f3e95032dfc in QCoreApplication::notifyInternal (this=0x7fffa35fa930, receiver=0x5471340, event=0x58fbec0) at kernel/qcoreapplication.cpp:610
#31 0x00007f3e95033a6a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x1807780) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#32 0x00007f3e9505c8a3 in postEventSourceDispatch (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#33 0x00007f3e8dd0120a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0x00007f3e8dd048e0 in ?? () from /usr/lib/libglib-2.0.so.0
#35 0x00007f3e8dd04a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#36 0x00007f3e9505c52f in QEventDispatcherGlib::processEvents (this=0x1806fd0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:324
#37 0x00007f3e95c4a70f in QGuiEventDispatcherGlib::processEvents (this=0x59ddfc0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#38 0x00007f3e950316a2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -1554012128}) at kernel/qeventloop.cpp:149
#39 0x00007f3e95031a6d in QEventLoop::exec (this=0x7fffa35fa860, flags={i = -1554012048}) at kernel/qeventloop.cpp:200
#40 0x00007f3e95033d34 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#41 0x00000000006ea342 in main (argc=3, argv=0x7fffa35fb068) at /build/buildd/digikam-1.0.0~beta1/digikam/main.cpp:184

This bug may be a duplicate of or related to bug 197562

Reported using DrKonqi
Comment 1 caulier.gilles 2009-07-28 21:51:16 UTC
Please, try again using 1.0.0-beta3...

Gilles Caulier
Comment 2 Dario Andres 2009-07-29 02:59:43 UTC
This looks related to bug 199096 / bug 194330. Thanks
Comment 3 Marcel Wiesweg 2009-08-04 17:02:51 UTC
I am pretty sure these crashes have been fixed.
Comment 4 caulier.gilles 2017-07-26 07:11:52 UTC
Since digiKam 5.0.0 we have an independent database trash management with a dedicated trash album  for each collection. The low level file processing with trash is don through a multi-threaded interface.