Bug 378085 - Assertion failure in KateViewSpace during session shutdown
Summary: Assertion failure in KateViewSpace during session shutdown
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-03-26 00:40 UTC by Andreas Hartmetz
Modified: 2017-08-16 13:07 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 Andreas Hartmetz 2017-03-26 00:40:51 UTC
Application: kate (17.03.70)
 (Compiled from sources)
Qt Version: 5.8.1
Frameworks Version: 5.33.0
Operating System: Linux 4.10.0-14-lowlatency x86_64
Distribution: Ubuntu Zesty Zapus (development branch)

-- Information about the crash:
Quitting the session, or alternatively the procedure described under "Testing and Debugging Session Management" here
http://doc.qt.io/qt-5/session.html can be used. The crash then also happens when ending the session.
For me it only seems to happen when in a Kate session (as opposed to X session) that was pre-existing and reopened.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Kate (kate), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9ae1efcd40 (LWP 8611))]

Thread 9 (Thread 0x7f9accc2f700 (LWP 8643)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f9ad6b3ba9b in cnd_wait (mtx=0x5596c789e240, cond=0x5596c789e268) at ../../include/c11/threads_posix.h:159
#2  util_queue_thread_func (input=input@entry=0x5596c789e6e0) at u_queue.c:158
#3  0x00007f9ad6b3b7c7 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#4  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9accc2f700) at pthread_create.c:333
#5  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 8 (Thread 0x7f9acd430700 (LWP 8642)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f9ad6b3ba9b in cnd_wait (mtx=0x5596c789e240, cond=0x5596c789e268) at ../../include/c11/threads_posix.h:159
#2  util_queue_thread_func (input=input@entry=0x5596c789e6a0) at u_queue.c:158
#3  0x00007f9ad6b3b7c7 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#4  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9acd430700) at pthread_create.c:333
#5  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 7 (Thread 0x7f9acdc31700 (LWP 8641)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f9ad6b3ba9b in cnd_wait (mtx=0x5596c789e240, cond=0x5596c789e268) at ../../include/c11/threads_posix.h:159
#2  util_queue_thread_func (input=input@entry=0x5596c789e660) at u_queue.c:158
#3  0x00007f9ad6b3b7c7 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#4  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9acdc31700) at pthread_create.c:333
#5  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 6 (Thread 0x7f9ace432700 (LWP 8640)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f9ad6b3ba9b in cnd_wait (mtx=0x5596c789e240, cond=0x5596c789e268) at ../../include/c11/threads_posix.h:159
#2  util_queue_thread_func (input=input@entry=0x5596c789db20) at u_queue.c:158
#3  0x00007f9ad6b3b7c7 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#4  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9ace432700) at pthread_create.c:333
#5  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 5 (Thread 0x7f9acee6d700 (LWP 8639)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f9ad6b3ba9b in cnd_wait (mtx=0x5596c78a0360, cond=0x5596c78a0388) at ../../include/c11/threads_posix.h:159
#2  util_queue_thread_func (input=input@entry=0x5596c78a0950) at u_queue.c:158
#3  0x00007f9ad6b3b7c7 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#4  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9acee6d700) at pthread_create.c:333
#5  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 4 (Thread 0x7f9acfdd6700 (LWP 8638)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f9ad6b3ba9b in cnd_wait (mtx=0x5596c789d2c8, cond=0x5596c789d2f0) at ../../include/c11/threads_posix.h:159
#2  util_queue_thread_func (input=input@entry=0x5596c789db20) at u_queue.c:158
#3  0x00007f9ad6b3b7c7 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#4  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9acfdd6700) at pthread_create.c:333
#5  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7f9adcd22700 (LWP 8622)):
#0  0x00007f9ae8fa910d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f9ae5e27576 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f9ae5e2768c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f9ae9bef2ab in QEventDispatcherGlib::processEvents (this=0x7f9ad00008c0, flags=...) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f9ae9b992f0 in QEventLoop::processEvents (this=this@entry=0x7f9adcd21ce0, flags=..., flags@entry=...) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventloop.cpp:134
#5  0x00007f9ae9b9971a in QEventLoop::exec (this=this@entry=0x7f9adcd21ce0, flags=..., flags@entry=...) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qeventloop.cpp:212
#6  0x00007f9ae99e5b4b in QThread::exec (this=this@entry=0x7f9ae9e94dc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread.cpp:507
#7  0x00007f9ae9e18978 in QDBusConnectionManager::run (this=0x7f9ae9e94dc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /opt/src/ksrc5/qt/stable/qtbase/src/dbus/qdbusconnection.cpp:178
#8  0x00007f9ae99eb491 in QThreadPrivate::start (arg=0x7f9ae9e94dc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread_unix.cpp:368
#9  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9adcd22700) at pthread_create.c:333
#10 0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7f9ae025a700 (LWP 8616)):
#0  0x00007f9ae8fa910d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f9ae7f711f0 in poll (__timeout=-1, __nfds=1, __fds=0x7f9ae0259c10) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x5596c6d50d70, cond=cond@entry=0x5596c6d50db0, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:479
#3  0x00007f9ae7f72f89 in xcb_wait_for_event (c=0x5596c6d50d70) at xcb_in.c:693
#4  0x00007f9ae19c83c3 in QXcbEventReader::run (this=0x5596c6d63d90) at /opt/src/ksrc5/qt/stable/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1346
#5  0x00007f9ae99eb491 in QThreadPrivate::start (arg=0x5596c6d63d90) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/thread/qthread_unix.cpp:368
#6  0x00007f9ae7d4a6ca in start_thread (arg=0x7f9ae025a700) at pthread_create.c:333
#7  0x00007f9ae8fb50ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7f9ae1efcd40 (LWP 8611)):
[KCrash Handler]
#6  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#7  0x00007f9ae8ee43ea in __GI_abort () at abort.c:89
#8  0x00007f9ae99d5575 in qt_message_fatal (message=<synthetic pointer>..., context=...) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/global/qlogging.cpp:1688
#9  QMessageLogger::fatal (this=this@entry=0x7fffe13b7670, msg=msg@entry=0x7f9ae9c3d858 "ASSERT: \"%s\" in file %s, line %d") at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/global/qlogging.cpp:796
#10 0x00007f9ae99cf7e0 in qt_assert (assertion=assertion@entry=0x5596c57e1670 "! m_docToView.contains(invalidDoc)", file=file@entry=0x5596c57e13d8 "/home/horst/ksrc5/kde/applications/kate/kate/kateviewspace.cpp", line=line@entry=489) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/global/qglobal.cpp:3077
#11 0x00005596c57ae5f8 in KateViewSpace::documentDestroyed (this=0x5596c748c4b0, doc=<optimized out>) at /home/horst/ksrc5/kde/applications/kate/kate/kateviewspace.cpp:489
#12 0x00005596c57d1d1d in KateViewSpace::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x7fffe13b7860) at kate/moc_kateviewspace.cpp:130
#13 0x00007f9ae9bc82cb in QMetaObject::activate (sender=sender@entry=0x5596c6f69090, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffe13b7860) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:3743
#14 0x00007f9ae9bc8781 in QMetaObject::activate (sender=sender@entry=0x5596c6f69090, m=m@entry=0x7f9ae9df17a0 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffe13b7860) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:3605
#15 0x00007f9ae9bc8818 in QObject::destroyed (this=this@entry=0x5596c6f69090, _t1=<optimized out>, _t1@entry=0x5596c6f69090) at .moc/moc_qobject.cpp:215
#16 0x00007f9ae9bce3f7 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:920
#17 0x00007f9aeb874aef in KParts::Part::~Part (this=0x5596c6f69090, __vtt_parm=0x7f9aeb685110 <VTT for KTextEditor::DocumentPrivate+32>, __in_chrg=<optimized out>) at /home/horst/ksrc5/frameworks/kparts/src/part.cpp:47
#18 0x00007f9aeb878575 in KParts::ReadOnlyPart::~ReadOnlyPart (this=0x5596c6f69090, __vtt_parm=0x7f9aeb685108 <VTT for KTextEditor::DocumentPrivate+24>, __in_chrg=<optimized out>) at /home/horst/ksrc5/frameworks/kparts/src/readonlypart.cpp:51
#19 0x00007f9aeb87a263 in KParts::ReadWritePart::~ReadWritePart (this=<optimized out>, __vtt_parm=<optimized out>, __in_chrg=<optimized out>) at /home/horst/ksrc5/frameworks/kparts/src/readwritepart.cpp:50
#20 0x00007f9aeb4d190b in KTextEditor::Document::~Document (this=<optimized out>, __vtt_parm=<optimized out>, __in_chrg=<optimized out>) at /home/horst/ksrc5/frameworks/ktexteditor/src/utils/document.cpp:32
#21 0x00007f9aeb3dc59b in KTextEditor::DocumentPrivate::~DocumentPrivate (this=this@entry=0x5596c6f69090, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/horst/ksrc5/frameworks/ktexteditor/src/document/katedocument.cpp:309
#22 0x00007f9aeb3dc6ed in KTextEditor::DocumentPrivate::~DocumentPrivate (this=0x5596c6f69090, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/horst/ksrc5/frameworks/ktexteditor/src/document/katedocument.cpp:349
#23 0x00007f9ae9bcd6df in QObjectPrivate::deleteChildren (this=this@entry=0x5596c6e0a920) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:1970
#24 0x00007f9ae9bce916 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at /opt/src/ksrc5/qt/stable/qtbase/src/corelib/kernel/qobject.cpp:1041
#25 0x00005596c5789cea in KateDocManager::~KateDocManager (this=0x7fffe13b7e68, __in_chrg=<optimized out>) at /home/horst/ksrc5/kde/applications/kate/kate/katedocmanager.cpp:63
#26 0x00005596c5783688 in KateApp::~KateApp (this=0x7fffe13b7e30, __in_chrg=<optimized out>) at /home/horst/ksrc5/kde/applications/kate/kate/kateapp.cpp:71
#27 0x00005596c577c1ae in main (argc=<optimized out>, argv=<optimized out>) at /home/horst/ksrc5/kde/applications/kate/kate/main.cpp:564

Possible duplicates by query: bug 377996, bug 364721, bug 364342.

Reported using DrKonqi
Comment 1 Andreas Hartmetz 2017-03-26 00:43:29 UTC
The crash actually happens every time here, but let's go with "sometimes" because it only happened on the second attempt in my xsm-based test session.
The problem with it happening on regular session exit is that there is no time to save the backtrace...
Comment 2 Christoph Cullmann 2017-07-24 22:54:00 UTC
Hmm, document manager dies before all main windows.
Comment 3 Christoph Cullmann 2017-07-25 08:24:06 UTC
Git commit 0bfd1334846c88cbe3612b2bcc39bb7f7a226734 by Christoph Cullmann.
Committed on 25/07/2017 at 08:22.
Pushed by cullmann into branch 'master'.

try to avoid crash on session save due to still existing main windows after
document manager destruction

I can not really reproduce the crash, therefore: if it still happens,
please reopen

M  +13   -6    kate/kateapp.cpp

https://commits.kde.org/kate/0bfd1334846c88cbe3612b2bcc39bb7f7a226734
Comment 4 Andreas Hartmetz 2017-08-16 12:45:37 UTC
This actually did fix the crash for me, thanks!
Comment 5 Christoph Cullmann 2017-08-16 13:07:05 UTC
Nice!
Good catch btw.!