https://bugs.kde.org/show_bug.cgi?id=385640
            Bug ID: 385640
           Summary: KDevelop: DocumentationView causing crash on exit
           Product: kdevelop
           Version: unspecified
          Platform: Compiled Sources
                OS: Linux
            Status: UNCONFIRMED
          Keywords: drkonqi
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: kdevelop-bugs-n...@kde.org
          Reporter: rjvber...@gmail.com
  Target Milestone: ---

Application: kdevelop (5.1.80-32-ge2a1d1f638)
 (Compiled from sources)
Qt Version: 5.8.0
Frameworks Version: 5.38.0
Operating System: Linux 4.9.30-ck1-mainline-core2-rjvb x86_64
Distribution: Ubuntu 14.04.5 LTS

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

I had been dragging the documentation toolview window to and from the dock to
study how that behaves and how the toolbar button changes position when
redocking the window on another side of the main window.

Then, I closed the doc window by clicking on the toolbar window and quit
KDevelop.

This crash seems to indicate that the doc toolview goes through a complete
initialisation at shutdown, which would explain why I sometimes see its window
appear (in floating mode) when I exit KDevelop. This process in turn may
explain why the toolview exhibitis random state restore behaviour (see
#385556).

I assume that DocumentationView::initialize() is being called here via the
queued method invocation at the end of its ctor. I'll be testing a small
modification:

diff --git a/kdevplatform/documentation/documentationview.cpp
b/kdevplatform/documentation/documentationview.cpp
index
2c6cccf8bd742e69022be8ee002ea49246c93f03..c150804c44c8fd77ed9de408a26528daaf7c71eb
100644
--- a/kdevplatform/documentation/documentationview.cpp
+++ b/kdevplatform/documentation/documentationview.cpp
@@ -44,6 +44,10 @@ using namespace KDevelop;
 DocumentationView::DocumentationView(QWidget* parent, ProvidersModel* model)
     : QWidget(parent), mProvidersModel(model)
 {
+    if (ICore::self()->shuttingDown()) {
+        return;
+    }
+
     setWindowIcon(QIcon::fromTheme(QStringLiteral("documentation"),
windowIcon()));
     setWindowTitle(i18n("Documentation"));

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

Thread 6 (Thread 0x7f5a07616700 (LWP 15561)):
#0  0x00007f5a1b989c5d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f5a11bc9b72 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f5a11bcb64f in xcb_wait_for_event () from
/usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f5a0a2a4549 in QXcbEventReader::run (this=0x7741b0) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1345
#4  0x00007f5a1c558cf9 in QThreadPrivate::start (arg=0x7741b0) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread_unix.cpp:368
#5  0x00007f5a16bbc184 in start_thread (arg=0x7f5a07616700) at
pthread_create.c:312
#6  0x00007f5a1b996ffd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 5 (Thread 0x7f59fc86e700 (LWP 15562)):
#0  0x00007f5a1b98834d in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f5a12fd6940 in g_wakeup_acknowledge () from
/opt/local/lib/libglib-2.0.so.0
#2  0x00007f5a12f7fac9 in g_main_context_check () from
/opt/local/lib/libglib-2.0.so.0
#3  0x00007f5a12f80028 in g_main_context_iterate.isra () from
/opt/local/lib/libglib-2.0.so.0
#4  0x00007f5a12f8018c in g_main_context_iteration () from
/opt/local/lib/libglib-2.0.so.0
#5  0x00007f5a1c77659b in QEventDispatcherGlib::processEvents
(this=0x7f59f80008c0, flags=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#6  0x00007f5a1c72217a in QEventLoop::exec (this=this@entry=0x7f59fc86dde0,
flags=..., flags@entry=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventloop.cpp:212
#7  0x00007f5a1c5542ab in QThread::exec (this=this@entry=0x7f5a1e0c1460
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread.cpp:507
#8  0x00007f5a1de51005 in QDBusConnectionManager::run (this=0x7f5a1e0c1460
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/dbus/qdbusconnection.cpp:170
#9  0x00007f5a1c558cf9 in QThreadPrivate::start (arg=0x7f5a1e0c1460 <(anonymous
namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread_unix.cpp:368
#10 0x00007f5a16bbc184 in start_thread (arg=0x7f59fc86e700) at
pthread_create.c:312
#11 0x00007f5a1b996ffd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 4 (Thread 0x7f59f4b3d700 (LWP 15563)):
#0  0x00007ffd3b5a6b55 in ?? ()
#1  0x00007f59f00012d0 in ?? ()
#2  0x00000000f00018a0 in ?? ()
#3  0x00007f59f0002cd0 in ?? ()
#4  0x00007f59f0000990 in ?? ()
#5  0x000000007fffffff in ?? ()
#6  0x00007f5a1b9a54dd in __GI___clock_gettime (clock_id=clock_id@entry=1,
tp=tp@entry=0x7f59f4b3cbc0) at ../sysdeps/unix/clock_gettime.c:115
#7  0x00007f5a1c775851 in qt_clock_gettime (ts=0x7f59f4b3cbc0, clock=<optimized
out>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qelapsedtimer_unix.cpp:111
#8  do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qelapsedtimer_unix.cpp:166
#9  qt_gettime () at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qelapsedtimer_unix.cpp:175
#10 0x00007f5a1c7740b9 in QTimerInfoList::updateCurrentTime (this=0x261f20ca)
at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:91
#11 0x00007f5a1c775b45 in timerSourceCheckHelper (src=<optimized out>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:146
#12 idleTimerSourceCheck (source=<optimized out>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:223
#13 0x00007f5a12f7f94e in g_main_context_check () from
/opt/local/lib/libglib-2.0.so.0
#14 0x00007f5a12f80028 in g_main_context_iterate.isra () from
/opt/local/lib/libglib-2.0.so.0
#15 0x00007f5a12f8018c in g_main_context_iteration () from
/opt/local/lib/libglib-2.0.so.0
#16 0x00007f5a1c77659b in QEventDispatcherGlib::processEvents
(this=0x7f59f00008c0, flags=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#17 0x00007f5a1c72217a in QEventLoop::exec (this=this@entry=0x7f59f4b3cd90,
flags=..., flags@entry=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventloop.cpp:212
#18 0x00007f5a1c5542ab in QThread::exec (this=<optimized out>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread.cpp:507
#19 0x00007f5a19b0317e in KDevelop::DUChainPrivate::CleanupThread::run
(this=0x14de130) 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:283
#20 0x00007f5a1c558cf9 in QThreadPrivate::start (arg=0x14de130) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread_unix.cpp:368
#21 0x00007f5a16bbc184 in start_thread (arg=0x7f59f4b3d700) at
pthread_create.c:312
#22 0x00007f5a1b996ffd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 3 (Thread 0x7f59ec109700 (LWP 15564)):
#0  0x00007f5a1b989c5d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f5a12f80081 in g_main_context_iterate.isra () from
/opt/local/lib/libglib-2.0.so.0
#2  0x00007f5a12f8018c in g_main_context_iteration () from
/opt/local/lib/libglib-2.0.so.0
#3  0x00007f5a1c77659b in QEventDispatcherGlib::processEvents
(this=0x7f59e40008c0, flags=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f5a1c72217a in QEventLoop::exec (this=this@entry=0x7f59ec108e10,
flags=..., flags@entry=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventloop.cpp:212
#5  0x00007f5a1c5542ab in QThread::exec (this=<optimized out>) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread.cpp:507
#6  0x00007f5a1c558cf9 in QThreadPrivate::start (arg=0x15549c0) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/thread/qthread_unix.cpp:368
#7  0x00007f5a16bbc184 in start_thread (arg=0x7f59ec109700) at
pthread_create.c:312
#8  0x00007f5a1b996ffd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f59be7fc700 (LWP 15845)):
#0  0x00007ffd3b5a6b55 in ?? ()
#1  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f5a2334d7c0 (LWP 15558)):
[KCrash Handler]
#6  0x0000000000000090 in ?? ()
#7  0x00007f5a1c755070 in QObject::connect (sender=sender@entry=0x3b64f30,
signal=signal@entry=0x7f5a1d81c458 "2dataChanged(QModelIndex,QModelIndex)",
receiver=receiver@entry=0x209a690, method=method@entry=0x7f5a1d81c428
"1_q_dataChanged(QModelIndex,QModelIndex)", type=type@entry=Qt::AutoConnection)
at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:2649
#8  0x00007f5a1d5a4cb9 in QComboBox::setModel (this=0x209a690, model=0x3b64f30)
at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/widgets/widgets/qcombobox.cpp:2002
#9  0x00007f5a1984480e in DocumentationView::initialize (this=0xddfd00) at
/opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kf5-kdevelop/kf5-kdevelop-devel/work/kf5-kdevelop-5/kdevplatform/documentation/documentationview.cpp:133
#10 0x00007f5a1c750121 in QObject::event (this=this@entry=0xddfd00,
e=e@entry=0x151cf60) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qobject.cpp:1263
#11 0x00007f5a1d4e0453 in QWidget::event (this=0xddfd00, event=0x151cf60) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/widgets/kernel/qwidget.cpp:9220
#12 0x00007f5a1d49ba5c in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0xddfd00, e=0x151cf60) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/widgets/kernel/qapplication.cpp:3745
#13 0x00007f5a1d4a2cd1 in QApplication::notify (this=0x7ffd3b435008,
receiver=0xddfd00, e=0x151cf60) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/widgets/kernel/qapplication.cpp:3502
#14 0x00007f5a1c724018 in QCoreApplication::notifyInternal2 (receiver=0xddfd00,
event=event@entry=0x151cf60) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:995
#15 0x00007f5a1c72667d in sendEvent (event=0x151cf60, receiver=<optimized out>)
at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.h:231
#16 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0,
event_type=event_type@entry=0, data=0x753480) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:1655
#17 0x00007f5a1c726ae8 in QCoreApplication::sendPostedEvents
(receiver=receiver@entry=0x0, event_type=event_type@entry=0) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:1509
#18 0x00007f5a1c776173 in postEventSourceDispatch (s=0x79c2f0) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:276
#19 0x00007f5a12f7fe37 in g_main_context_dispatch () from
/opt/local/lib/libglib-2.0.so.0
#20 0x00007f5a12f80108 in g_main_context_iterate.isra () from
/opt/local/lib/libglib-2.0.so.0
#21 0x00007f5a12f8018c in g_main_context_iteration () from
/opt/local/lib/libglib-2.0.so.0
#22 0x00007f5a1c77657f in QEventDispatcherGlib::processEvents (this=0x7fced0,
flags=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#23 0x00007f5a1c72217a in QEventLoop::exec (this=this@entry=0x7ffd3b434dd0,
flags=..., flags@entry=...) at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qeventloop.cpp:212
#24 0x00007f5a1c72a524 in QCoreApplication::exec () at
/opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/kernel/qcoreapplication.cpp:1268
#25 0x00000000004138e7 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:919

Reported using DrKonqi

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to