I refreshed my master build yesterday and now I'm getting a reproducible crash when selecting several messages in kmail and delete them: 9:48:40 - kmail2(11691)/ : ASSERT: "its.count() == 1" in file /kde/src/5/akonadiserver/src/core/monitor_p.cpp, line 972 #7 0x00007f8ce8774f6e in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:2994 #8 0x00007f8ce1974c5b in Akonadi::MonitorPrivate::emitItemsNotification(Akonadi::Protocol::ChangeNotification const&, QVector<Akonadi::Item> const&, Akonadi::Collection const&, Akonadi::Collection const&) (this=0xce7200, msg_=..., items=..., collection=..., collectionDest=...) at /kde/src/5/akonadiserver/src/core/monitor_p.cpp:972 #9 0x00007f8ce19726f4 in Akonadi::MonitorPrivate::emitNotification(Akonadi::Protocol::ChangeNotification const&) (this=0xce7200, msg=...) at /kde/src/5/akonadiserver/src/core/monitor_p.cpp:587 #10 0x00007f8ce19227ea in Akonadi::ChangeRecorderPrivate::emitNotification(Akonadi::Protocol::ChangeNotification const&) (this=0xce7200, msg=...) at /kde/src/5/akonadiserver/src/core/changerecorder_p.cpp:499 #11 0x00007f8ce19739a9 in Akonadi::MonitorPrivate::flushPipeline() (this=0xce7200) at /kde/src/5/akonadiserver/src/core/monitor_p.cpp:802 #12 0x00007f8ce1973a08 in Akonadi::MonitorPrivate::dataAvailable() (this=0xce7200) at /kde/src/5/akonadiserver/src/core/monitor_p.cpp:811 #13 0x00007f8ce19666ee in Akonadi::Monitor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0xbaab80, _c=QMetaObject::InvokeMetaMethod, _id=37, _a=0x7ffc29613350) at /kde/build/5/akonadiserver/src/core/moc_monitor.cpp:304 #14 0x00007f8ce8980961 in QMetaObject::activate(QObject*, int, int, void**) (sender=0xc16650, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3730 #15 0x00007f8ce194254b in Akonadi::EntityCacheBase::dataAvailable() (this=0xc16650) at /kde/build/5/akonadiserver/src/core/moc_entitycache_p.cpp:145 #16 0x00007f8ce1918a45 in Akonadi::EntityListCache<Akonadi::Item, Akonadi::ItemFetchJob, Akonadi::ItemFetchScope>::processResult(KJob*) (this=0xc16650, job=0x3c8ed80) at /kde/src/5/akonadiserver/src/core/entitycache_p.h:499 #17 0x00007f8ce1942347 in Akonadi::EntityCacheBase::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0xc16650, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffc296136c0) at /kde/build/5/akonadiserver/src/core/moc_entitycache_p.cpp:80 #18 0x00007f8ce8980961 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x3c8ed80, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3730 #19 0x00007f8ce97ce7f5 in KJob::result(KJob*, KJob::QPrivateSignal) (this=0x3c8ed80, _t1=0x3c8ed80) at /kde/build/5/kcoreaddons/src/lib/moc_kjob.cpp:555 #20 0x00007f8ce97ccb8a in KJob::finishJob(bool) (this=0x3c8ed80, emitResult=true) at /kde/src/5/kcoreaddons/src/lib/jobs/kjob.cpp:109 #21 0x00007f8ce97cd273 in KJob::emitResult() (this=0x3c8ed80) at /kde/src/5/kcoreaddons/src/lib/jobs/kjob.cpp:293 #22 0x00007f8ce19e3c4b in Akonadi::JobPrivate::delayedEmitResult() (this=0x39f7220) at /kde/src/5/akonadiserver/src/core/jobs/job.cpp:153 #23 0x00007f8ce19e4d55 in Akonadi::Job::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x3c8ed80, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xba5b50) at /kde/build/5/akonadiserver/src/core/moc_job.cpp:108 #24 0x00007f8ce89814a1 in QObject::event(QEvent*) (this=0x3c8ed80, e=<optimized out>) at kernel/qobject.cpp:1256
Do you actually delete, or do you just move to trash? If the latter, is your Trash folder owned by a different resource than the folder you are "deleting" from?
The default action is to move to trash. The trash folder is owned by the default maildir resource.
Git commit 0a90244dd6d399c55e2546d73f093692eb2520df by Daniel Vrátil. Committed on 22/04/2016 at 22:28. Pushed by dvratil into branch 'Applications/16.04'. Fix assert for translated inter-resource remove of multiple items The special handling to ensure translation of inter-resource move did not consider moving of multiple items and the fact that when it gets translated into Remove on source resource (or client) the resource might not support batch removal. Make sure that if split is needed we first perform split, then translate to Remove/Add. FIXED-IN: 16.04.1 M +8 -1 src/core/monitor_p.cpp http://commits.kde.org/akonadi/0a90244dd6d399c55e2546d73f093692eb2520df