Bug 392971

Summary: Crash when using Discover along with Yast
Product: [Applications] Discover Reporter: honzamison
Component: discoverAssignee: Aleix Pol <aleixpol>
Status: RESOLVED FIXED    
Severity: crash CC: bburgess, bogdanstefan, brynncantelon, chouinard, DShelley1992, edgar.nash, ifjkisstamas, kde, larrosa, Mohammed_ElAfifi, nate, nuaanjzizy
Priority: NOR Keywords: drkonqi
Version: 5.12.4   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.12.5
Attachments: zypper_lr_-d
bug.txt
bug2.txt
New crash information added by DrKonqi

Description honzamison 2018-04-10 15:30:55 UTC
Application: plasma-discover (5.12.4)

Qt Version: 5.10.0
Frameworks Version: 5.44.0
Operating System: Linux 4.16.0-1-default x86_64
Distribution: "openSUSE Tumbleweed"

-- Information about the crash:
- What I was doing when the application crashed:
On the background was running firefox, yast and terminal. 5 of 5 tries lead to crash( segfault )

The crash can be reproduced every time.

-- Backtrace:
Application: Discover (plasma-discover), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f3d19b04540 (LWP 9420))]

Thread 11 (Thread 0x7f3cc6488700 (LWP 9443)):
#0  0x00007f3d151c7bf4 in read () from /lib64/libc.so.6
#1  0x00007f3d0f7c1ab0 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77cf17 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d0f77d3d0 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f3d15b0aa2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#6  0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#7  0x00007f3d158d8baa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#8  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#9  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#10 0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 10 (Thread 0x7f3cdd218700 (LWP 9431)):
#0  0x00007f3d119f256c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f3d158deefb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQt5Core.so.5
#2  0x00007f3d158d76db in QSemaphore::acquire(int) () from /usr/lib64/libQt5Core.so.5
#3  0x00007f3d13101114 in ?? () from /usr/lib64/libQt5Network.so.5
#4  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#5  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#6  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7f3cdda19700 (LWP 9430)):
#0  0x00007f3d151c7bf4 in read () from /lib64/libc.so.6
#1  0x00007f3d0f7c1ab0 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77cf17 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d0f77d3d0 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f3d15b0aa2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#6  0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#7  0x00007f3d158d8baa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#8  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#9  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#10 0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7f3cdead8700 (LWP 9429)):
#0  0x00007f3d151c7bf4 in read () from /lib64/libc.so.6
#1  0x00007f3d0f7c1ab0 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77cf17 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d0f77d3d0 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3d0f77d7c2 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f3ce3d41e86 in ?? () from /usr/lib64/libgio-2.0.so.0
#6  0x00007f3d0f7a4f65 in ?? () from /usr/lib64/libglib-2.0.so.0
#7  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#8  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f3cdf2d9700 (LWP 9428)):
#0  0x00007f3d151c7bf4 in read () from /lib64/libc.so.6
#1  0x00007f3d0f7c1ab0 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77cf17 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d0f77d3d0 in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007f3d0f77d581 in ?? () from /usr/lib64/libglib-2.0.so.0
#6  0x00007f3d0f7a4f65 in ?? () from /usr/lib64/libglib-2.0.so.0
#7  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#8  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f3ce05e9700 (LWP 9427)):
#0  0x00007f3d0f7c2e44 in g_mutex_unlock () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f3d0f77cc29 in g_main_context_query () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77d3a7 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3d15b0aa2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#6  0x00007f3d158d8baa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#7  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#9  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f3ced7d0700 (LWP 9426)):
#0  0x00007f3d0f7c2e44 in g_mutex_unlock () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f3d0f77cdb8 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77d3d0 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f3d15b0aa2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#6  0x00007f3d158d8baa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#7  0x00007f3d18cd4b22 in ?? () from /usr/lib64/libQt5Quick.so.5
#8  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#9  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#10 0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f3cfcc81700 (LWP 9424)):
#0  0x00007f3d151cc179 in poll () from /lib64/libc.so.6
#1  0x00007f3d0f77d429 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d15b0aa2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f3d158d8baa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007f3d164a6fd5 in ?? () from /usr/lib64/libQt5Qml.so.5
#7  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#9  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f3cfde92700 (LWP 9423)):
#0  0x00007f3d151cc179 in poll () from /lib64/libc.so.6
#1  0x00007f3d0f77d429 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3d15b0aa2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f3d158d8baa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007f3d17c85a35 in ?? () from /usr/lib64/libQt5DBus.so.5
#7  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#9  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f3d06a07700 (LWP 9422)):
#0  0x00007f3d151cc179 in poll () from /lib64/libc.so.6
#1  0x00007f3d0f512387 in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007f3d0f513faa in xcb_wait_for_event () from /usr/lib64/libxcb.so.1
#3  0x00007f3d099d40a9 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007f3d158ddba0 in ?? () from /usr/lib64/libQt5Core.so.5
#5  0x00007f3d119ec59b in start_thread () from /lib64/libpthread.so.0
#6  0x00007f3d151d6a1f in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f3d19b04540 (LWP 9420)):
[KCrash Handler]
#6  0x0000556ea1eaacf0 in ?? ()
#7  0x00007f3d1896ee2f in AbstractResourcesBackend::Filters::shouldFilter(AbstractResource*) const () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#8  0x00007f3d1896f15d in AbstractResourcesBackend::Filters::filterJustInCase(QVector<AbstractResource*>&) const () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#9  0x00007f3d189666e2 in ResourcesProxyModel::addResources(QVector<AbstractResource*> const&) () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#10 0x00007f3d15ae136c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#11 0x00007f3d1897f742 in ResultsStream::resourcesFound(QVector<AbstractResource*> const&) () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#12 0x00007f3d1895e890 in AggregatedResultsStream::emitResults() () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#13 0x00007f3d1895e8e9 in AggregatedResultsStream::clear() () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#14 0x00007f3d1895fa63 in AggregatedResultsStream::destruction(QObject*) () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#15 0x00007f3d15ae136c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
#16 0x00007f3d15ae1a0f in QObject::destroyed(QObject*) () from /usr/lib64/libQt5Core.so.5
#17 0x00007f3d15ae7e0a in QObject::~QObject() () from /usr/lib64/libQt5Core.so.5
#18 0x00007f3d1896e9c9 in ResultsStream::~ResultsStream() () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#19 0x00007f3d15ae1c78 in QObject::event(QEvent*) () from /usr/lib64/libQt5Core.so.5
#20 0x00007f3d170f101c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#21 0x00007f3d170f8314 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5
#22 0x00007f3d15ab3148 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#23 0x00007f3d15ab5b25 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/libQt5Core.so.5
#24 0x00007f3d15b0b393 in ?? () from /usr/lib64/libQt5Core.so.5
#25 0x00007f3d0f77d277 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#26 0x00007f3d0f77d4b0 in ?? () from /usr/lib64/libglib-2.0.so.0
#27 0x00007f3d0f77d53c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#28 0x00007f3d15b0aa0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#29 0x00007f3d09a55781 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
#30 0x00007f3d15ab195a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#31 0x00007f3d15aba494 in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
#32 0x0000556e9f6be068 in ?? ()
#33 0x00007f3d150fea87 in __libc_start_main () from /lib64/libc.so.6
#34 0x0000556e9f6be24a in _start ()

The reporter indicates this bug may be a duplicate of or related to bug 385554.

Possible duplicates by query: bug 390611, bug 390480, bug 390129, bug 386474, bug 385554.

Reported using DrKonqi
Comment 1 Antonio Larrosa 2018-04-11 11:10:18 UTC
Some questions in order to have more information...

Can you write here the output of running "zypper lr -d" ? Just to try to reproduce your system configuration.

Did you run "zypper dup" to update your system recently? I tried updating my system and can't reproduce this (nor I could reproduce it before updating)

Can you reproduce the problem without yast running in the background? and after a system restart?
Comment 2 honzamison 2018-04-12 08:27:54 UTC
Created attachment 111965 [details]
zypper_lr_-d

Hi, i did not run zypper dup recently and the problem only appear when i
have yast software management running on the background.
Discovery->settings throw segfault only if yast software management is
running on the background but when i start discovery and then software
management both seems to work fine.

On Wed, Apr 11, 2018 at 1:10 PM, Antonio Larrosa <bugzilla_noreply@kde.org>
wrote:

> https://bugs.kde.org/show_bug.cgi?id=392971
>
> Antonio Larrosa <larrosa@kde.org> changed:
>
>            What    |Removed                     |Added
> ------------------------------------------------------------
> ----------------
>                  CC|                            |larrosa@kde.org
>
> --- Comment #1 from Antonio Larrosa <larrosa@kde.org> ---
> Some questions in order to have more information...
>
> Can you write here the output of running "zypper lr -d" ? Just to try to
> reproduce your system configuration.
>
> Did you run "zypper dup" to update your system recently? I tried updating
> my
> system and can't reproduce this (nor I could reproduce it before updating)
>
> Can you reproduce the problem without yast running in the background? and
> after
> a system restart?
>
> --
> You are receiving this mail because:
> You reported the bug.
>
Comment 3 Aleix Pol 2018-04-23 10:46:56 UTC
*** Bug 393235 has been marked as a duplicate of this bug. ***
Comment 4 Aleix Pol 2018-04-23 10:48:42 UTC
Seems like it happens in Fedora too, so it's possibly not an opensuse thing.

Could you run it from the terminal and tell me if you get something like "Discarding invalid backend "something.knsrc""?
Comment 5 honzamison 2018-04-25 09:27:00 UTC
Created attachment 112234 [details]
bug.txt

Hi,
bug.txt is all i get after i start discover from terminal with yast
swmanager running on the background and clicking settings in it.
without yast swmanager running on the background i get bug2.txt


On Mon, Apr 23, 2018 at 12:48 PM, Aleix Pol <bugzilla_noreply@kde.org>
wrote:

> https://bugs.kde.org/show_bug.cgi?id=392971
>
> --- Comment #4 from Aleix Pol <aleixpol@kde.org> ---
> Seems like it happens in Fedora too, so it's possibly not an opensuse
> thing.
>
> Could you run it from the terminal and tell me if you get something like
> "Discarding invalid backend "something.knsrc""?
>
> --
> You are receiving this mail because:
> You reported the bug.
>
Comment 6 honzamison 2018-04-25 09:27:01 UTC
Created attachment 112235 [details]
bug2.txt
Comment 7 Aleix Pol 2018-05-03 10:11:03 UTC
Seems like Yast being open locks the zypper db and makes Discover go crazy.
Comment 8 Nate Graham 2018-05-06 04:16:18 UTC
*** Bug 393874 has been marked as a duplicate of this bug. ***
Comment 9 Nate Graham 2018-05-06 04:16:24 UTC
*** Bug 393884 has been marked as a duplicate of this bug. ***
Comment 10 Nate Graham 2018-05-06 04:17:27 UTC
Those last two duplicates have the backtrace, but are from Ubuntu 18.04. Looks like it's not just YaST that does this.
Comment 11 DShelley1992 2018-05-07 12:11:58 UTC
Created attachment 112467 [details]
New crash information added by DrKonqi

plasma-discover (5.12.4) using Qt 5.10.1

- What I was doing when the application crashed:

When I open discover and try to go to "Settings", the app crashes. Before it crashes, it shows an error message saying the following: "Error when getting information for file "/var/cache/PackageKit/28/metadata/rpmfusion-nonfree/repodata/appstream.xml.gz": No such file or directory".

-- Backtrace (Reduced):
#7  0x00007ff18704fbc0 in AbstractResourcesBackend::Filters::shouldFilter(AbstractResource*) const () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#8  0x00007ff18704ff6b in AbstractResourcesBackend::Filters::filterJustInCase(QVector<AbstractResource*>&) const () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#9  0x00007ff187047446 in ResourcesProxyModel::addResources(QVector<AbstractResource*> const&) () from /usr/lib64/plasma-discover/libDiscoverCommon.so
[...]
#11 0x00007ff187060636 in ResultsStream::resourcesFound(QVector<AbstractResource*> const&) () from /usr/lib64/plasma-discover/libDiscoverCommon.so
#12 0x00007ff18703f6dc in AggregatedResultsStream::emitResults() () from /usr/lib64/plasma-discover/libDiscoverCommon.so
Comment 12 Nate Graham 2018-05-08 17:23:51 UTC
*** Bug 393979 has been marked as a duplicate of this bug. ***
Comment 13 Nate Graham 2018-05-14 19:07:45 UTC
*** Bug 394258 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2018-05-14 19:07:49 UTC
*** Bug 394225 has been marked as a duplicate of this bug. ***
Comment 15 Aleix Pol 2018-05-15 15:46:40 UTC
Git commit 6ee190414604f471327fc9613c96f246047d6ac2 by Aleix Pol.
Committed on 15/05/2018 at 15:46.
Pushed by apol into branch 'Plasma/5.12'.

Fix crash

When removing resources, remove its references as well.

M  +5    -0    libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp

https://commits.kde.org/discover/6ee190414604f471327fc9613c96f246047d6ac2
Comment 16 Aleix Pol 2018-05-28 16:35:37 UTC
*** Bug 394722 has been marked as a duplicate of this bug. ***
Comment 17 Nate Graham 2018-06-12 14:09:55 UTC
*** Bug 395270 has been marked as a duplicate of this bug. ***
Comment 18 Nate Graham 2018-06-27 17:42:05 UTC
*** Bug 395551 has been marked as a duplicate of this bug. ***