Bug 372277 - Discover crashes when used to open rpm file
Summary: Discover crashes when used to open rpm file
Status: RESOLVED FIXED
Alias: None
Product: Discover
Classification: Applications
Component: discover (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: Aleix Pol
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-10 06:41 UTC by Mustafa Muhammad
Modified: 2016-11-23 11:48 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mustafa Muhammad 2016-11-10 06:41:58 UTC
I tried to open chrome rpm using plasma-discover and it crashed, this is the backtrace (drkonqi couldn't report it because it says "plasma-discover doesn't provide a bug reporting address")


Application: plasma-discover (plasma-discover), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
185	62:	movl	(%rsp), %edi
[Current thread is 1 (Thread 0x7f70fd067900 (LWP 7793))]

Thread 5 (Thread 0x7f70e0b77700 (LWP 7798)):
#0  g_mutex_unlock (mutex=0x7f70d8000990) at gthread-posix.c:1348
#1  0x00007f7102299ffd in g_main_context_iterate (context=context@entry=0x7f70d8000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3877
#2  0x00007f710229a26c in g_main_context_iteration (context=0x7f70d8000990, may_block=may_block@entry=1) at gmain.c:3990
#3  0x00007f7109f5fd8b in QEventDispatcherGlib::processEvents (this=0x7f70d80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f7109f110ba in QEventLoop::exec (this=this@entry=0x7f70e0b76cc0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:210
#5  0x00007f7109d6e643 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:507
#6  0x00007f7109d72a1a in QThreadPrivate::start (arg=0x7f70d4003650) at thread/qthread_unix.cpp:344
#7  0x00007f71076ac6ca in start_thread (arg=0x7f70e0b77700) at pthread_create.c:333
#8  0x00007f7109165f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 4 (Thread 0x7f70e1378700 (LWP 7797)):
#0  0x00007f71022df7f9 in g_mutex_lock (mutex=mutex@entry=0x7f70d4000990) at gthread-posix.c:1336
#1  0x00007f710229a258 in g_main_context_iteration (context=0x7f70d4000990, may_block=may_block@entry=1) at gmain.c:3989
#2  0x00007f7109f5fd8b in QEventDispatcherGlib::processEvents (this=0x7f70d40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#3  0x00007f7109f110ba in QEventLoop::exec (this=this@entry=0x7f70e1377c50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:210
#4  0x00007f7109d6e643 in QThread::exec (this=this@entry=0x564c70825080) at thread/qthread.cpp:507
#5  0x00007f710cfd6ca6 in QQuickPixmapReader::run (this=0x564c70825080) at /usr/src/debug/qtdeclarative-opensource-src-5.7.0/src/quick/util/qquickpixmapcache.cpp:823
#6  0x00007f7109d72a1a in QThreadPrivate::start (arg=0x564c70825080) at thread/qthread_unix.cpp:344
#7  0x00007f71076ac6ca in start_thread (arg=0x7f70e1378700) at pthread_create.c:333
#8  0x00007f7109165f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7f70e3fff700 (LWP 7796)):
#0  0x00007f710915a00d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f710229a156 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f70dc002e70, timeout=<optimized out>, context=0x7f70dc000990) at gmain.c:4228
#2  g_main_context_iterate (context=context@entry=0x7f70dc000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3924
#3  0x00007f710229a26c in g_main_context_iteration (context=0x7f70dc000990, may_block=may_block@entry=1) at gmain.c:3990
#4  0x00007f7109f5fd8b in QEventDispatcherGlib::processEvents (this=0x7f70dc0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f7109f110ba in QEventLoop::exec (this=this@entry=0x7f70e3ffeca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:210
#6  0x00007f7109d6e643 in QThread::exec (this=this@entry=0x564c6f3b4ad0) at thread/qthread.cpp:507
#7  0x00007f710a824735 in QQmlThreadPrivate::run (this=0x564c6f3b4ad0) at /usr/src/debug/qtdeclarative-opensource-src-5.7.0/src/qml/qml/ftw/qqmlthread.cpp:147
#8  0x00007f7109d72a1a in QThreadPrivate::start (arg=0x564c6f3b4ad0) at thread/qthread_unix.cpp:344
#9  0x00007f71076ac6ca in start_thread (arg=0x7f70e3fff700) at pthread_create.c:333
#10 0x00007f7109165f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7f70e97f6700 (LWP 7795)):
[KCrash Handler]
#6  0x00007f7109f3c87d in QObject::disconnect (sender=0x7f70d8003860, signal=signal@entry=0x0, receiver=receiver@entry=0x7f70e4014a70, method=method@entry=0x0) at kernel/qobject.cpp:2956
#7  0x00007f710d877fd0 in QObject::disconnect (member=0x0, receiver=0x7f70e4014a70, this=<optimized out>) at ../../src/corelib/kernel/qobject.h:359
#8  QDBusConnectionPrivate::closeConnection (this=this@entry=0x7f70e4014a70) at qdbusintegrator.cpp:1133
#9  0x00007f710d8648c2 in QDBusConnectionManager::run (this=0x7f710d8da060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:206
#10 0x00007f7109d72a1a in QThreadPrivate::start (arg=0x7f710d8da060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:344
#11 0x00007f71076ac6ca in start_thread (arg=0x7f70e97f6700) at pthread_create.c:333
#12 0x00007f7109165f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7f70fd067900 (LWP 7793)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f7109d7309a in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x564c6f38c500) at thread/qwaitcondition_unix.cpp:143
#2  QWaitCondition::wait (this=this@entry=0x564c6f38c4e0, mutex=mutex@entry=0x564c6f38c4c0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:215
#3  0x00007f7109d7261e in QThread::wait (this=this@entry=0x7f710d8da060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>, time=time@entry=18446744073709551615) at thread/qthread_unix.cpp:675
#4  0x00007f710d864616 in QDBusConnectionManager::~QDBusConnectionManager (this=0x7f710d8da060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>, __in_chrg=<optimized out>) at qdbusconnection.cpp:175
#5  0x00007f710d8646a9 in (anonymous namespace)::Q_QGS__q_manager::Holder::~Holder (this=<optimized out>, __in_chrg=<optimized out>) at qdbusconnection.cpp:76
#6  0x00007f7109098420 in __run_exit_handlers (status=1, listp=0x7f710941e5b8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:83
#7  0x00007f710909847a in __GI_exit (status=<optimized out>) at exit.c:105
#8  0x00007f710907e408 in __libc_start_main (main=0x564c6d518b80 <main(int, char**)>, argc=2, argv=0x7ffc9aa2b388, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc9aa2b378) at ../csu/libc-start.c:323
#9  0x0000564c6d51939a in _start ()
Comment 1 Aleix Pol 2016-11-10 17:42:36 UTC
Please fill version and platform fields.

Also how do you open an rpm file?
Comment 2 Mustafa Muhammad 2016-11-12 07:07:37 UTC
(In reply to Aleix Pol from comment #1)
> Please fill version and platform fields.
> 
> Also how do you open an rpm file?

Couldn't find 5.8.1 in versions, thus I chose unspecified.
Fedora 25 RC, plasma-discover 5.8.1

Right clicked the rpm, and chose plasma-discover from the "Open With->Other->(searched for it)"
Comment 3 Rex Dieter 2016-11-12 16:21:04 UTC
I didn't think discover supported installing packages directly, it's desktop file only contains:
MimeType=x-scheme-handler/appstream;

(no mention of package mimetypes)
Comment 4 Mustafa Muhammad 2016-11-13 05:34:12 UTC
(In reply to Rex Dieter from comment #3)
> I didn't think discover supported installing packages directly, it's desktop
> file only contains:
> MimeType=x-scheme-handler/appstream;
> 
> (no mention of package mimetypes)

Maybe it doesn't, I was trying, and I think it should support this.
Comment 5 Aleix Pol 2016-11-14 19:15:44 UTC
Git commit 53042cfafb32de7c9268303e304bc0d5d60ff1c4 by Aleix Pol.
Committed on 14/11/2016 at 18:53.
Pushed by apol into branch 'master'.

Don't close if the input is wrong

Display a visual error message instead, users expect the feedback on the
GUI.

M  +8    -0    discover/DiscoverMainWindow.cpp
M  +1    -0    discover/DiscoverMainWindow.h
M  +1    -0    discover/autotests/CMakeLists.txt
M  +5    -6    discover/main.cpp

http://commits.kde.org/discover/53042cfafb32de7c9268303e304bc0d5d60ff1c4
Comment 6 Aleix Pol 2016-11-23 11:48:18 UTC
Git commit 3f3cddb46bf0708f82b8a0b1cc352339432d66f1 by Aleix Pol.
Committed on 23/11/2016 at 11:33.
Pushed by apol into branch 'Plasma/5.8'.

Don't close if the input is wrong

Display a visual error message instead, users expect the feedback on the
GUI.

M  +8    -0    discover/DiscoverMainWindow.cpp
M  +1    -0    discover/DiscoverMainWindow.h
M  +1    -0    discover/autotests/CMakeLists.txt
M  +5    -6    discover/main.cpp

https://commits.kde.org/discover/3f3cddb46bf0708f82b8a0b1cc352339432d66f1