Bug 372292 - apper hang on close
Summary: apper hang on close
Status: RESOLVED FIXED
Alias: None
Product: apper
Classification: Unmaintained
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Daniel Nicoletti
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-10 13:40 UTC by Rex Dieter
Modified: 2016-12-22 14:36 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
use correct QDialog::finished signal prototype (1.34 KB, patch)
2016-12-20 02:57 UTC, Loïc Yhuel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rex Dieter 2016-11-10 13:40:43 UTC
Using latest build from master/ branch (Nov 11, 2016), Seems apper process hangs on close.  After closing the application, the apper process is still running in the background.

I'll try to get a backtrace.
Comment 1 Rex Dieter 2016-11-10 13:42:48 UTC
(gdb) thread apply all backtrace

Thread 3 (Thread 0x7f5132394700 (LWP 20468)):
#0  0x00007f514b7a556d in poll () at /lib64/libc.so.6
#1  0x00007f5147e00a06 in g_main_context_iterate (priority=<optimized out>, n_fds=4, fds=0x7f5124016300, timeout=<optimized out>, context=0x7f5124000990) at gmain.c:4135
#2  0x00007f5147e00a06 in g_main_context_iterate (context=context@entry=0x7f5124000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3835
#3  0x00007f5147e00b1c in g_main_context_iteration (context=0x7f5124000990, may_block=may_block@entry=1) at gmain.c:3901
#4  0x00007f514c5ab73f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f51240008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0x00007f514c55a81a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f5132393c40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:206
#6  0x00007f514c3b9353 in QThread::exec() (this=this@entry=0x7f5152dd0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:500
#7  0x00007f5152d5b559 in QDBusConnectionManager::run() (this=0x7f5152dd0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:189
#8  0x00007f514c3bd9ba in QThreadPrivate::start(void*) (arg=0x7f5152dd0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:365
#9  0x00007f51496835ca in start_thread () at /lib64/libpthread.so.0
#10 0x00007f514b7b10ed in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f51336ff700 (LWP 20467)):
#0  0x00007f514b7a556d in poll () at /lib64/libc.so.6
#1  0x00007f5148d8ef80 in _xcb_conn_wait (__timeout=-1, __nfds=1, __fds=0x7f51336feb80) at /usr/include/bits/poll2.h:46
#2  0x00007f5148d8ef80 in _xcb_conn_wait (c=c@entry=0x55d426025d40, cond=cond@entry=0x55d426025d80, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:459
#3  0x00007f5148d90b79 in xcb_wait_for_event (c=0x55d426025d40) at xcb_in.c:693
#4  0x00007f513644af99 in QXcbEventReader::run() (this=0x55d426030410) at qxcbconnection.cpp:1331
#5  0x00007f514c3bd9ba in QThreadPrivate::start(void*) (arg=0x55d426030410) at thread/qthread_unix.cpp:365
#6  0x00007f51496835ca in start_thread () at /lib64/libpthread.so.0
#7  0x00007f514b7b10ed in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f513cecc940 (LWP 20463)):
#0  0x00007f514b7a556d in poll () at /lib64/libc.so.6
#1  0x00007f5147e00a06 in g_main_context_iterate (priority=<optimized out>, n_fds=3, fds=0x55d42606f040, timeout=<optimized out>, context=0x7f512c0016f0) at gmain.c:4135
#2  0x00007f5147e00a06 in g_main_context_iterate (context=context@entry=0x7f512c0016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3835
#3  0x00007f5147e00b1c in g_main_context_iteration (context=0x7f512c0016f0, may_block=may_block@entry=1) at gmain.c:3901
#4  0x00007f514c5ab73f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55d42605b4a0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0x00007f514c55a81a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd2084e080, flags=..., flags@entry=...) at kernel/qeventloop.cpp:206
#6  0x00007f514c5623bc in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1285
#7  0x000055d42416f127 in main(int, char**) (argc=<optimized out>, argv=0x7ffd2084e2d8) at /usr/src/debug/apper-0.9.3/Apper/main.cpp:56
Comment 2 Loïc Yhuel 2016-12-20 02:54:15 UTC
When trying to relaunch apper a second time, the new process only prints "Message recipient disconnected from message bus without replying", and both exit.
Launching it again then works.
So for the user, it looks like apper only starts one time out of two.

On first launch :
QCommandLineParser: option not defined: "install-mime-type"
QCommandLineParser: option not defined: "install-package-name"
QCommandLineParser: option not defined: "install-provide-file"
QCommandLineParser: option not defined: "install-catalog"
QCommandLineParser: option not defined: "remove-package-by-file"
Invalid pixmap specified.
Invalid pixmap specified.
QObject::connect: No such slot MainUi::setCaption(QString)
QObject::connect:  (sender name:   'ApperKCM')
QObject::connect: No such signal MainUi::finished()

The issue comes from the "No such signal MainUi::finished()".
I don't know why it seems new, since the code is quite old.
Comment 3 Loïc Yhuel 2016-12-20 02:57:58 UTC
Created attachment 102886 [details]
use correct QDialog::finished signal prototype

Patch fixing the issue : SIGNAL(finished()) => SIGNAL(finished(int))
Comment 4 Rex Dieter 2016-12-22 14:36:24 UTC
Git commit 0816948bb791b1f79920ed5b44bdc45bbedec0d4 by Rex Dieter.
Committed on 22/12/2016 at 14:36.
Pushed by rdieter into branch 'master'.

use correct QDialog::finished signal prototype

Patch fixing the issue : SIGNAL(finished()) => SIGNAL(finished(int))
Courtesy of Loïc Yhuel, thanks.

M  +4    -4    Apper/Apper.cpp

https://commits.kde.org/apper/0816948bb791b1f79920ed5b44bdc45bbedec0d4