Bug 401961 - Discover crashed upon removing multiple apps at once
Summary: Discover crashed upon removing multiple apps at once
Status: RESOLVED FIXED
Alias: None
Product: Discover
Classification: Applications
Component: discover (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Aleix Pol
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2018-12-10 14:58 UTC by Alexander Mentyu
Modified: 2018-12-15 06:34 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.15.0


Attachments
Regular (not Flatpak/Snap) apps list (251.22 KB, image/png)
2018-12-10 16:31 UTC, Alexander Mentyu
Details
Batch installations and one removal of featured apps (17.52 KB, text/plain)
2018-12-10 17:36 UTC, Alexander Mentyu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Mentyu 2018-12-10 14:58:04 UTC
Application: plasma-discover (5.14.80)

Qt Version: 5.11.2
Frameworks Version: 5.54.0
Operating System: Linux 4.15.0-42-generic x86_64
Distribution: KDE neon Developer Edition

-- Information about the crash:
- What I was doing when the application crashed:
Pressed 'Remove' (and possibly 'Install') button for multiple apps at once

-- Backtrace:
Application: Discover (plasma-discover), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f55f4e35800 (LWP 3706))]

Thread 10 (Thread 0x7f55a1b29700 (LWP 3724)):
#0  0x00007f55ec4659f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5585d4c656d0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f55ec4659f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x5585d4c65680, cond=0x5585d4c656a8) at pthread_cond_wait.c:502
#2  0x00007f55ec4659f3 in __pthread_cond_wait (cond=0x5585d4c656a8, mutex=0x5585d4c65680) at pthread_cond_wait.c:655
#3  0x00007f55f051894b in QWaitConditionPrivate::wait(unsigned long) (time=18446744073709551615, this=0x5585d4c65680) at thread/qwaitcondition_unix.cpp:143
#4  0x00007f55f051894b in QWaitCondition::wait(QMutex*, unsigned long) (this=<optimized out>, mutex=0x5585d4c653e0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:215
#5  0x00007f55f3a5ab18 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007f55f3a5af4a in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x5585d4c65360) at thread/qthread_unix.cpp:367
#8  0x00007f55ec45f6db in start_thread (arg=0x7f55a1b29700) at pthread_create.c:463
#9  0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7f55a232a700 (LWP 3723)):
#0  0x00007f55efe02bf9 in __GI___poll (fds=0x7f55980018a0, nfds=1, timeout=86058) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f55ea2c3539 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55f073d04b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f5598000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f55a2329da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#5  0x00007f55f050cbba in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:525
#6  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x5585d2f58940) at thread/qthread_unix.cpp:367
#7  0x00007f55ec45f6db in start_thread (arg=0x7f55a232a700) at pthread_create.c:463
#8  0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f55b08f3700 (LWP 3718)):
#0  0x00007f55efe02bf9 in __GI___poll (fds=0x5585d47a3b80, nfds=1, timeout=87058) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f55ea2c3539 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55f073d04b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f55a8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f55b08f2da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#5  0x00007f55f050cbba in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:525
#6  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x5585d46f1090) at thread/qthread_unix.cpp:367
#7  0x00007f55ec45f6db in start_thread (arg=0x7f55b08f3700) at pthread_create.c:463
#8  0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f55c0dae700 (LWP 3714)):
#0  0x00007f55efdfe0b4 in __GI___libc_read (fd=18, buf=0x7f55c0dadb90, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f55ea307cd0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c3027 in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55ea2c34e0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f55f073d04b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f55b8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f55c0dadda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#7  0x00007f55f050cbba in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:525
#8  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x5585d336bf70) at thread/qthread_unix.cpp:367
#9  0x00007f55ec45f6db in start_thread (arg=0x7f55c0dae700) at pthread_create.c:463
#10 0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f55c2329700 (LWP 3713)):
#0  0x00007f55efe02bf9 in __GI___poll (fds=0x5585d3353120, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f55ea2c3539 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c38d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55c526e026 in  () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f55ea2eb105 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f55ec45f6db in start_thread (arg=0x7f55c2329700) at pthread_create.c:463
#6  0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f55c2b2a700 (LWP 3712)):
#0  0x00007f55efe02bf9 in __GI___poll (fds=0x5585d333d7a0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f55ea2c3539 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55ea2c3691 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f55ea2eb105 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f55ec45f6db in start_thread (arg=0x7f55c2b2a700) at pthread_create.c:463
#6  0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f55ce65c700 (LWP 3711)):
#0  0x00007f55efdfe0b4 in __GI___libc_read (fd=11, buf=0x7f55ce65bb20, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f55ea307cd0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c3027 in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55ea2c34e0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f55f073d04b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f55c8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f55ce65bd30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#7  0x00007f55f050cbba in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:525
#8  0x00007f55f39db826 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#9  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x5585d3258fc0) at thread/qthread_unix.cpp:367
#10 0x00007f55ec45f6db in start_thread (arg=0x7f55ce65c700) at pthread_create.c:463
#11 0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f55de655700 (LWP 3709)):
#0  0x00007f55ea309064 in g_mutex_unlock () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f55ea2c34f6 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55f073d04b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f55d0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f55de654d80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#5  0x00007f55f050cbba in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:525
#6  0x00007f55f14474f5 in  () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x5585d2b4f7f0) at thread/qthread_unix.cpp:367
#8  0x00007f55ec45f6db in start_thread (arg=0x7f55de655700) at pthread_create.c:463
#9  0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f55df866700 (LWP 3708)):
#0  0x00007f55efdfe0b4 in __GI___libc_read (fd=6, buf=0x7f55df865b60, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f55ea307cd0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f55ea2c3027 in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f55ea2c34e0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f55f073d04b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f55d8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f55df865d70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#7  0x00007f55f050cbba in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:525
#8  0x00007f55f27a1e45 in  () at /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007f55f0517adb in QThreadPrivate::start(void*) (arg=0x7f55f2a19d60) at thread/qthread_unix.cpp:367
#10 0x00007f55ec45f6db in start_thread (arg=0x7f55df866700) at pthread_create.c:463
#11 0x00007f55efe0f88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f55f4e35800 (LWP 3706)):
[KCrash Handler]
#6  0x00007f55f07142c0 in QObjectPrivate::addConnection(int, QObjectPrivate::Connection*) (this=0x5585d46b7d70, signal=signal@entry=0, c=c@entry=0x7f558c046830) at kernel/qobject.cpp:389
#7  0x00007f55f07162b1 in QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) (sender=sender@entry=0x5585d46b7d10, signal_index=0, receiver=receiver@entry=0x5585d7857230, slot=slot@entry=0x0, slotObj=slotObj@entry=0x5585d4fbcf70, type=<optimized out>, types=<optimized out>, senderMetaObject=<optimized out>) at kernel/qobject.cpp:4848
#8  0x00007f55f071660a in QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) (sender=sender@entry=0x5585d46b7d10, signal=signal@entry=0x7ffce4465fd0, receiver=receiver@entry=0x5585d7857230, slot=slot@entry=0x0, slotObj=0x5585d4fbcf70, type=Qt::AutoConnection, types=0x0, senderMetaObject=0x7f55f0b5ea40 <QObject::staticMetaObject>) at kernel/qobject.cpp:4791
#9  0x00007f55f44f982f in QObject::connect<void (QObject::*)(QObject*), AggregatedResultsStream::addResults(const QVector<AbstractResource*>&)::<lambda()> > (type=Qt::AutoConnection, slot=..., context=0x5585d7857230, signal=(void (QObject::*)(QObject * const, QObject *)) 0x7f55f07127b0 <QObject::destroyed(QObject*)>, sender=0x5585d46b7d10) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:333
#10 0x00007f55f44f982f in AggregatedResultsStream::addResults(QVector<AbstractResource*> const&) (this=0x5585d7857230, res=...) at ./libdiscover/resources/ResourcesModel.cpp:295
#11 0x00007f55f071218f in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffce4466130, r=0x5585d7857230, this=0x5585d4bd6710) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376
#12 0x00007f55f071218f in QMetaObject::activate(QObject*, int, int, void**) (sender=0x5585d2ed1ff0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffce4466130) at kernel/qobject.cpp:3754
#13 0x00007f55f0712747 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f55f473d3a0 <ResultsStream::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffce4466130) at kernel/qobject.cpp:3633
#14 0x00007f55f451bc12 in ResultsStream::resourcesFound(QVector<AbstractResource*> const&) (this=<optimized out>, _t1=...) at ./obj-x86_64-linux-gnu/libdiscover/DiscoverCommon_autogen/3YJK5W5UP7/moc_AbstractResourcesBackend.cpp:153
#15 0x00007f55f450a175 in ResultsStream::<lambda()>::operator() (__closure=0x5585d556eb20) at ./libdiscover/resources/AbstractResourcesBackend.cpp:52
#16 0x00007f55f450a175 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ResultsStream::ResultsStream(const QString&, const QVector<AbstractResource*>&)::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:128
#17 0x00007f55f450a175 in QtPrivate::Functor<ResultsStream::ResultsStream(const QString&, const QVector<AbstractResource*>&)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:238
#18 0x00007f55f450a175 in QtPrivate::QFunctorSlotObject<ResultsStream::ResultsStream(const QString&, const QVector<AbstractResource*>&)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x5585d556eb10, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:421
#19 0x00007f55f071eef4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffce4466170, r=<optimized out>, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376
#20 0x00007f55f071eef4 in QSingleShotTimer::timerEvent(QTimerEvent*) (this=0x5585d477c7d0) at kernel/qtimer.cpp:318
#21 0x00007f55f0712b9b in QObject::event(QEvent*) (this=0x5585d477c7d0, e=<optimized out>) at kernel/qobject.cpp:1273
#22 0x00007f55f2091e1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x5585d2a5c6f0, receiver=receiver@entry=0x5585d477c7d0, e=e@entry=0x7ffce4466440) at kernel/qapplication.cpp:3727
#23 0x00007f55f20993ef in QApplication::notify(QObject*, QEvent*) (this=0x7ffce4466770, receiver=0x5585d477c7d0, e=0x7ffce4466440) at kernel/qapplication.cpp:3486
#24 0x00007f55f06e2fe8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5585d477c7d0, event=event@entry=0x7ffce4466440) at kernel/qcoreapplication.cpp:1048
#25 0x00007f55f073c4be in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7ffce4466440, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#26 0x00007f55f073c4be in QTimerInfoList::activateTimers() (this=0x5585d2acc450) at kernel/qtimerinfo_unix.cpp:643
#27 0x00007f55f073cc81 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182
#28 0x00007f55ea2c3387 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f55ea2c35c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f55ea2c364c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f55f073d02f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5585d2a9ad00, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#32 0x00007f55e4c90731 in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#33 0x00007f55f06e130a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffce44666b0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:214
#34 0x00007f55f06ea4d0 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1336
#35 0x00005585d274280a in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./discover/main.cpp:168

Possible duplicates by query: bug 395238, bug 390381.

Reported using DrKonqi
Comment 1 Aleix Pol 2018-12-10 15:53:25 UTC
What do you mean by "at once"?
Do you know if they were flatpak, snap or packagekit?
Comment 2 Alexander Mentyu 2018-12-10 16:31:09 UTC
Created attachment 116830 [details]
Regular (not Flatpak/Snap) apps list

1. Pressed 'Remove' button of one app.
2. Confirmed pass prompt.
3. Without waiting for previous removal to complete pressed 'Remove' of other app in same list.
4. Pressed 'Remove' button for other apps in the list without waiting for previous removals to complete - so it was batch removal.
5. App crashed.
Comment 3 Alexander Mentyu 2018-12-10 17:36:05 UTC
Created attachment 116832 [details]
Batch installations and one removal of featured apps
Comment 4 Aleix Pol 2018-12-13 02:39:22 UTC
Git commit 012bd024d631332fa4a4fb7e0ff77374577f61fd by Aleix Pol.
Committed on 13/12/2018 at 02:39.
Pushed by apol into branch 'master'.

pk: change strategy for updating the installed package state

Use the information offered by the transaction instead of clearing the
package and resolving the packages again. PackageKit apt backend is
really slow and issues happen eventually.
Related: bug 401971

M  +12   -11   libdiscover/backends/PackageKitBackend/PKTransaction.cpp
M  +0    -8    libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
M  +0    -1    libdiscover/backends/PackageKitBackend/PackageKitBackend.h

https://commits.kde.org/discover/012bd024d631332fa4a4fb7e0ff77374577f61fd