Bug 355207 - kate crashes when closing a view
Summary: kate crashes when closing a view
Status: RESOLVED WORKSFORME
Alias: None
Product: kate
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-11-11 18:30 UTC by victor
Modified: 2018-08-02 22:40 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description victor 2015-11-11 18:30:05 UTC
Application: kate (15.08.1)

Qt Version: 5.5.0
Operating System: Linux 4.2.5-300.fc23.x86_64 x86_64
Distribution: "Fedora release 23 (Twenty Three)"

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

Somehow I have gotten kate into a state where, when I run it without a session, it opens with two editor views (split horizontally)  If I attempt to close one of the file views using the toolbar button, or menu, or keyboard shortcut (Ctrl-Shift-R), the crash occurs.

After this started happening, any new session that I created / saved and then re-opened later opens in a state where no text editors appear until I drag an invisible splitter bar from the bottom of the window up, at which point four editor views appear (split horizontal and vertical).  If I start closing views, as soon as there are two and I try to close either one, Kate crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Kate (kate), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5e0d574940 (LWP 31354))]

Thread 10 (Thread 0x7f5debc6c700 (LWP 31357)):
#0  0x00007f5e0601e11d in poll () at /lib64/libc.so.6
#1  0x00007f5e02cef272 in _xcb_conn_wait () at /lib64/libxcb.so.1
#2  0x00007f5e02cf0ee7 in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007f5deddfe999 in QXcbEventReader::run() () at /lib64/libQt5XcbQpa.so.5
#4  0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#6  0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 9 (Thread 0x7f5de22a8700 (LWP 31438)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#8  0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 8 (Thread 0x7f5de1aa7700 (LWP 31439)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#8  0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7f5de12a6700 (LWP 31441)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#7  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#8  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#9  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#10 0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#11 0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#12 0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#13 0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#14 0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f5de0aa5700 (LWP 31442)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#8  0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f5dd3fff700 (LWP 31443)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#7  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#8  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#9  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#10 0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#11 0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#12 0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#13 0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#14 0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f5dd37fe700 (LWP 31444)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#7  0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#8  0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f5dd2ffd700 (LWP 31445)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#7  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#8  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#9  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#10 0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#11 0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#12 0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#13 0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#14 0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f5dd27fc700 (LWP 31446)):
#0  0x00007f5e03f96b10 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f5e06c267db in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f5de83a7bff in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /lib64/libKF5ThreadWeaver.so.5
#3  0x00007f5de83ac3a8 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#4  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#5  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#6  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#7  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#8  0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#9  0x00007f5de83ac402 in ThreadWeaver::WorkingHardState::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#10 0x00007f5de83a6cb3 in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /lib64/libKF5ThreadWeaver.so.5
#11 0x00007f5de83a9c43 in ThreadWeaver::Thread::run() () at /lib64/libKF5ThreadWeaver.so.5
#12 0x00007f5e06c2554e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#13 0x00007f5e03f9160a in start_thread () at /lib64/libpthread.so.0
#14 0x00007f5e06029bbd in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f5e0d574940 (LWP 31354)):
[KCrash Handler]
#5  0x00007f5e085db858 in QSplitterPrivate::insertWidget_helper(int, QWidget*, bool) () at /lib64/libQt5Widgets.so.5
#6  0x00007f5e0d2110dc in KateViewManager::removeViewSpace(KateViewSpace*) () at /lib64/libkdeinit5_kate.so
#7  0x00007f5e0d24d34f in KateViewManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /lib64/libkdeinit5_kate.so
#8  0x00007f5e06e36021 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#9  0x00007f5e0848032b in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#10 0x00007f5e0843d4ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#11 0x00007f5e08442976 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#12 0x00007f5e06e0661b in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#13 0x00007f5e06e08a16 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#14 0x00007f5e06e5c983 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#15 0x00007f5e0218fe3a in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#16 0x00007f5e021901d0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#17 0x00007f5e0219027c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#18 0x00007f5e06e5cd8f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#19 0x00007f5e06e03daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#20 0x00007f5e06e0be6c in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#21 0x00007f5e0d2468d4 in kdemain () at /lib64/libkdeinit5_kate.so
#22 0x00007f5e05f47580 in __libc_start_main () at /lib64/libc.so.6
#23 0x0000564608211b49 in _start ()

Reported using DrKonqi
Comment 1 Christoph Cullmann 2018-07-14 16:56:58 UTC
We had multiple fixes post 2015 to the viewmanager code concerning corner cases of the splitter restore/usage.

Please try with an up-to-date version if that behavior is gone, thanks.
Comment 2 victor 2018-07-16 20:48:51 UTC
(In reply to Christoph Cullmann from comment #1)
> We had multiple fixes post 2015 to the viewmanager code concerning corner
> cases of the splitter restore/usage.
> 
> Please try with an up-to-date version if that behavior is gone, thanks.

I don't actively use Kate anymore, but I tried and could not reproduce the problem with version 17.12.2 (Fedora 28).

Thanks for following up, and on my birthday too :)
Comment 3 Christoph Feck 2018-08-02 22:40:53 UTC
Thanks for checking! Changing status.