Bug 419831 - KDevelop sometimes hangs on exit
Summary: KDevelop sometimes hangs on exit
Status: CONFIRMED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-04-08 08:11 UTC by RJVB
Modified: 2022-10-06 09:53 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description RJVB 2020-04-08 08:11:55 UTC
Application: kdevelop (5.5.0-19-gca0f71e796)
 (Compiled from sources)
Qt Version: 5.9.8
Frameworks Version: 5.60.0
Operating System: Linux 4.14.23-ck1-mainline-core2-rjvb x86_64
Windowing system: X11
Distribution: Ubuntu 14.04.6 LTS

-- Information about the crash:
- What I was doing when the application crashed:

Periodically, KDevelop will hang after (as far as I can determine) terminating its core shutdown procedure (DUchain, sessionController and languageController, in that order).

I don't see anything related to KDevelop in the backtrace or when I attach a debugger; has anyone seen similar cases

The crash can be reproduced sometimes.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f01b22e6c80 (LWP 2311))]

Thread 7 (Thread 0x7f017999a700 (LWP 2506)):
#0  0x00007f01a618c489 in pthread_mutex_lock () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f019f4e148d in g_mutex_lock (mutex=<optimized out>) at gthread-posix.c:214
#2  g_main_context_prepare (context=0x7f016c000990, priority=0x7f017999985c) at gmain.c:3483
#3  0x00007f019f4e25b8 in g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3888
#4  0x00007f019f4e2a21 in g_main_context_iteration (context=0x7f016c000990, may_block=1) at gmain.c:3969
#5  0x00007f01a9a9bb7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f01a9a435df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f01a98837b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#8  0x00007f01a9884946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f01a618a184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f01a8c9b03d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 6 (Thread 0x7f017bbb7700 (LWP 2504)):
#0  0x00007f01a8c8c37d in read () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f019f4e1a7f in g_wakeup_acknowledge (wakeup=0x7f017c002390) at gwakeup.c:210
#2  g_main_context_check (context=0x7f0174000990, max_priority=2147483647, fds=0x7f01740013c0, n_fds=1) at gmain.c:3686
#3  0x00007f019f4e27a6 in g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3905
#4  0x00007f019f4e2a21 in g_main_context_iteration (context=0x7f0174000990, may_block=1) at gmain.c:3969
#5  0x00007f01a9a9bb7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f01a9a435df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f01a98837b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#8  0x00007f01a9884946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f01a618a184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f01a8c9b03d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 5 (Thread 0x7f0180a68700 (LWP 2477)):
#0  0x00007f01a8c8dc9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f019f4e2761 in g_main_context_poll (priority=0, context=<optimized out>, timeout=<optimized out>, fds=<optimized out>, n_fds=<optimized out>) at gmain.c:4209
#2  g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3903
#3  0x00007f019f4e2a21 in g_main_context_iteration (context=0x7f017c000990, may_block=1) at gmain.c:3969
#4  0x00007f01a9a9bb7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f01a9a435df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f01a98837b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f01b0c3d0ee in KDevelop::DUChainPrivate::CleanupThread::run (this=0x2ac3810) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-kdevelop/kf5-kdevelop-devel/work/kf5-kdevelop-5/kdevplatform/language/duchain/duchain.cpp:331
#8  0x00007f01a9884946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f01a618a184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f01a8c9b03d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 4 (Thread 0x7f0181667700 (LWP 2475)):
#0  0x00007f01a618e404 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f0182351b2b in cnd_wait (cond=<optimized out>, mtx=<optimized out>) at ../mesa-18.3.3/src/../include/c11/threads_posix.h:155
#2  util_queue_thread_func (input=<optimized out>) at ../mesa-18.3.3/src/util/u_queue.c:270
#3  0x00007f0182352446 in impl_thrd_routine (p=<optimized out>) at ../mesa-18.3.3/src/../include/c11/threads_posix.h:87
#4  0x00007f01a618a184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007f01a8c9b03d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 3 (Thread 0x7f0192536700 (LWP 2324)):
#0  0x00007f01a8c8dc9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f019f4e2761 in g_main_context_poll (priority=0, context=<optimized out>, timeout=<optimized out>, fds=<optimized out>, n_fds=<optimized out>) at gmain.c:4209
#2  g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3903
#3  0x00007f019f4e2a21 in g_main_context_iteration (context=0x7f0184000990, may_block=1) at gmain.c:3969
#4  0x00007f01a9a9bb7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f01a9a435df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f01a98837b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f01ab0fb840 in QDBusConnectionManager::run() () from /opt/local/libexec/qt512/lib/libQt5DBus.so.5
#8  0x00007f01a9884946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f01a618a184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f01a8c9b03d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7f0193e1e700 (LWP 2322)):
#0  0x00007f01a8c8dc9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f019df59ab2 in _xcb_conn_wait () from /opt/local/lib/libxcb.so.1
#2  0x00007f019df5beba in xcb_wait_for_event () from /opt/local/lib/libxcb.so.1
#3  0x00007f0195dae448 in QXcbEventQueue::run() () from /opt/local/libexec/qt512/lib/libQt5XcbQpa.so.5
#4  0x00007f01a9884946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f01a618a184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f01a8c9b03d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7f01b22e6c80 (LWP 2311)):
[KCrash Handler]
#6  0x00007f01a8c8dc9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007f019f4e2761 in g_main_context_poll (priority=0, context=<optimized out>, timeout=<optimized out>, fds=<optimized out>, n_fds=<optimized out>) at gmain.c:4209
#8  g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3903
#9  0x00007f019f4e2a21 in g_main_context_iteration (context=0x7f018c003030, may_block=1) at gmain.c:3969
#10 0x00007f01a9a9bb7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#11 0x00007f01a9a435df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#12 0x00007f01a9a48031 in QCoreApplication::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#13 0x000000000041389a in main (argc=<optimized out>, argv=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-kdevelop/kf5-kdevelop-devel/work/kf5-kdevelop-5/app/main.cpp:1003

Possible duplicates by query: bug 419777, bug 419689, bug 419468, bug 419291, bug 419152.

Reported using DrKonqi
Comment 1 RJVB 2020-04-22 14:22:43 UTC
(drKonqi  balks something about private attachments not being allowed when I try to upload the latest report, so here it is manually):

Application: kdevelop (5.5.0-25-g0dda64acb3)
 (Compiled from sources)
Qt Version: 5.9.8
Frameworks Version: 5.60.0
Operating System: Linux 4.14.23-ck1-mainline-core2-rjvb x86_64
Windowing system: X11
Distribution: Ubuntu 14.04.6 LTS

-- Information about the crash:
- What I was doing when the application crashed:

As the previous time, I quit KDevelop and a deadlock ensued after the languageController was cleaned up.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f42d08f0c80 (LWP 23120))]

Thread 7 (Thread 0x7f42976fd700 (LWP 24412)):
#0  0x00007f42c729537d in read () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f42bdaeaa7f in g_wakeup_acknowledge (wakeup=0x7f4290002780) at gwakeup.c:210
#2  g_main_context_check (context=0x7f428c000990, max_priority=2147483647, fds=0x7f428c0013c0, n_fds=1) at gmain.c:3686
#3  0x00007f42bdaeb7a6 in g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3905
#4  0x00007f42bdaeba21 in g_main_context_iteration (context=0x7f428c000990, may_block=1) at gmain.c:3969
#5  0x00007f42c80a4b7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f42c804c5df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f42c7e8c7b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#8  0x00007f42c7e8d946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f42c4793184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f42c72a403d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 6 (Thread 0x7f429d9ed700 (LWP 24325)):
#0  0x00007f42c7296c9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f42bdaeb761 in g_main_context_poll (priority=0, context=<optimized out>, timeout=<optimized out>, fds=<optimized out>, n_fds=<optimized out>) at gmain.c:4209
#2  g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3903
#3  0x00007f42bdaeba21 in g_main_context_iteration (context=0x7f4290000990, may_block=1) at gmain.c:3969
#4  0x00007f42c80a4b7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f42c804c5df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f42c7e8c7b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f42c7e8d946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#8  0x00007f42c4793184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9  0x00007f42c72a403d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 5 (Thread 0x7f429e84e700 (LWP 24248)):
#0  0x00007f42c7296c9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f42bdaeb761 in g_main_context_poll (priority=0, context=<optimized out>, timeout=<optimized out>, fds=<optimized out>, n_fds=<optimized out>) at gmain.c:4209
#2  g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3903
#3  0x00007f42bdaeba21 in g_main_context_iteration (context=0x7f4298000990, may_block=1) at gmain.c:3969
#4  0x00007f42c80a4b7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f42c804c5df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f42c7e8c7b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f42cf246a2e in KDevelop::DUChainPrivate::CleanupThread::run (this=0x2cec140) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-kdevelop/kf5-kdevelop-devel/work/kf5-kdevelop-5/kdevplatform/language/duchain/duchain.cpp:331
#8  0x00007f42c7e8d946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f42c4793184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f42c72a403d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 4 (Thread 0x7f42a014d700 (LWP 23759)):
#0  0x00007f42c4797404 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f42a0ddcb2b in cnd_wait (cond=<optimized out>, mtx=<optimized out>) at ../mesa-18.3.3/src/../include/c11/threads_posix.h:155
#2  util_queue_thread_func (input=<optimized out>) at ../mesa-18.3.3/src/util/u_queue.c:270
#3  0x00007f42a0ddd446 in impl_thrd_routine (p=<optimized out>) at ../mesa-18.3.3/src/../include/c11/threads_posix.h:87
#4  0x00007f42c4793184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007f42c72a403d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 3 (Thread 0x7f42b0b3f700 (LWP 23303)):
#0  g_source_iter_next (iter=<optimized out>, source=<optimized out>) at gmain.c:982
#1  g_main_context_prepare (context=0x7f42a4000990, priority=0x7f42b0b3e82c) at gmain.c:3458
#2  0x00007f42bdaeb5b8 in g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3888
#3  0x00007f42bdaeba21 in g_main_context_iteration (context=0x7f42a4000990, may_block=1) at gmain.c:3969
#4  0x00007f42c80a4b7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f42c804c5df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#6  0x00007f42c7e8c7b7 in QThread::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#7  0x00007f42c9704840 in QDBusConnectionManager::run() () from /opt/local/libexec/qt512/lib/libQt5DBus.so.5
#8  0x00007f42c7e8d946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#9  0x00007f42c4793184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f42c72a403d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7f42b2427700 (LWP 23193)):
#0  0x00007f42c7296c9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f42bc562ab2 in _xcb_conn_wait () from /opt/local/lib/libxcb.so.1
#2  0x00007f42bc564eba in xcb_wait_for_event () from /opt/local/lib/libxcb.so.1
#3  0x00007f42b43b7448 in QXcbEventQueue::run() () from /opt/local/libexec/qt512/lib/libQt5XcbQpa.so.5
#4  0x00007f42c7e8d946 in QThreadPrivate::start(void*) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#5  0x00007f42c4793184 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f42c72a403d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7f42d08f0c80 (LWP 23120)):
[KCrash Handler]
#6  0x00007f42c7296c9d in poll () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007f42bdaeb761 in g_main_context_poll (priority=0, context=<optimized out>, timeout=<optimized out>, fds=<optimized out>, n_fds=<optimized out>) at gmain.c:4209
#8  g_main_context_iterate (context=<optimized out>, block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at gmain.c:3903
#9  0x00007f42bdaeba21 in g_main_context_iteration (context=0x7f42ac003030, may_block=1) at gmain.c:3969
#10 0x00007f42c80a4b7b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#11 0x00007f42c804c5df in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#12 0x00007f42c8051031 in QCoreApplication::exec() () from /opt/local/libexec/qt512/lib/libQt5Core.so.5
#13 0x00000000004138fa in main (argc=<optimized out>, argv=<optimized out>) at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-kdevelop/kf5-kdevelop-devel/work/kf5-kdevelop-5/app/main.cpp:1008

Possible duplicates by query: bug 420414, bug 420303, bug 420134, bug 419831, bug 419777.

Report to https://bugs.kde.org/
Comment 2 Justin Zobel 2022-10-06 06:37:24 UTC
Thank you for reporting this crash in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the crash with a recent software version?

If you can reproduce the issue, please change the status to "CONFIRMED" when replying. Thank you!
Comment 3 RJVB 2022-10-06 09:53:44 UTC
This still happens (and AFAIK there has been very little development on KDevelop since).

My workaround has been to implement a timer that is started late in the cleanup procedure and which will send a SIGHUP to the process after 1 minute. This can't be a QTimer because the hang occurs after Qt's shut down code. I see this feature trigger with some regularity, esp. after longer and/or more complex sessions.