Bug 334746 - [frameworks] Crash when closing kate
Summary: [frameworks] Crash when closing kate
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: Vi Input Mode (other bugs)
Version First Reported In: Git
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-05-14 09:51 UTC by Unknown
Modified: 2014-07-20 18:01 UTC (History)
2 users (show)

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


Attachments
backtrace (20.08 KB, text/plain)
2014-05-14 09:52 UTC, Unknown
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Unknown 2014-05-14 09:51:33 UTC
Backtrace attached

Reproducible: Always
Comment 1 Unknown 2014-05-14 09:52:00 UTC
Created attachment 86627 [details]
backtrace
Comment 2 Dominik Haumann 2014-05-14 09:57:50 UTC
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff745272c in ~KateNormalInputMode (this=0x98f860, __in_chrg=<optimized out>)
    at /home/adys/aur/kf5/ktexteditor-git/src/ktexteditor/src/inputmode/katenormalinputmode.cpp:37
#2  KateNormalInputMode::~KateNormalInputMode (this=0x98f860, __in_chrg=<optimized out>) at /home/adys/aur/kf5/ktexteditor-git/src/ktexteditor/src/inputmode/katenormalinputmode.cpp:38
#3  0x00007ffff73c611f in qDeleteAll<QMap<KTextEditor::View::InputMode, KateAbstractInputMode*>::const_iterator> (end=..., begin=...) at /usr/include/QtCore/qalgorithms.h:323
#4  qDeleteAll<QMap<KTextEditor::View::InputMode, KateAbstractInputMode*> > (c=...) at /usr/include/QtCore/qalgorithms.h:331
#5  KateViewInternal::~KateViewInternal (this=0x997970, __in_chrg=<optimized out>) at /home/adys/aur/kf5/ktexteditor-git/src/ktexteditor/src/view/kateviewinternal.cpp:244
#6  0x00007ffff73c6319 in KateViewInternal::~KateViewInternal (this=0x997970, __in_chrg=<optimized out>)
    at /home/adys/aur/kf5/ktexteditor-git/src/ktexteditor/src/view/kateviewinternal.cpp:250
#7  0x00007ffff73bc710 in KTextEditor::ViewPrivate::~ViewPrivate (this=0x98cfd0, __in_chrg=<optimized out>)
    at /home/adys/aur/kf5/ktexteditor-git/src/ktexteditor/src/view/kateview.cpp:271
#8  0x00007ffff73bca69 in KTextEditor::ViewPrivate::~ViewPrivate (this=0x98cfd0, __in_chrg=<optimized out>)
    at /home/adys/aur/kf5/ktexteditor-git/src/ktexteditor/src/view/kateview.cpp:278
#9  0x00007ffff2f3112c in QObjectPrivate::deleteChildren() () from /usr/lib/libQt5Core.so.5
#10 0x00007ffff3bec6d2 in QWidget::~QWidget() () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff3d498be in QFrame::~QFrame() () from /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff3db70ea in QStackedWidget::~QStackedWidget() () from /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff3db7120 in QStackedWidget::~QStackedWidget() () from /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff2f3112c in QObjectPrivate::deleteChildren() () from /usr/lib/libQt5Core.so.5
#15 0x00007ffff3bec6d2 in QWidget::~QWidget() () from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff7bb5c95 in ?? () from /usr/lib/libkdeinit5_kate.so
#17 0x00007ffff2f3112c in QObjectPrivate::deleteChildren() () from /usr/lib/libQt5Core.so.5
#18 0x00007ffff3bec6d2 in QWidget::~QWidget() () from /usr/lib/libQt5Widgets.so.5
#19 0x00007ffff3d498be in QFrame::~QFrame() () from /usr/lib/libQt5Widgets.so.5
#20 0x00007ffff3db42f6 in QSplitter::~QSplitter() () from /usr/lib/libQt5Widgets.so.5
#21 0x00007ffff7b770ca in ?? () from /usr/lib/libkdeinit5_kate.so
#22 0x00007ffff7b69a95 in ?? () from /usr/lib/libkdeinit5_kate.so
#23 0x00007ffff7b69c09 in ?? () from /usr/lib/libkdeinit5_kate.so
#24 0x00007ffff2f33538 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#25 0x00007ffff3bfe27c in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#26 0x00007ffff3d672cc in QMainWindow::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007ffff5acba9a in KMainWindow::event (this=this@entry=0x832fc0, ev=ev@entry=0x9031e0) at /home/adys/aur/kf5/kxmlgui-git/src/kxmlgui/src/kmainwindow.cpp:819
#28 0x00007ffff5b13f15 in KXmlGuiWindow::event (this=0x832fc0, ev=0x9031e0) at /home/adys/aur/kf5/kxmlgui-git/src/kxmlgui/src/kxmlguiwindow.cpp:118
#29 0x00007ffff3bb6128 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#30 0x00007ffff3bb5f94 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#31 0x00007ffff2f05823 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#32 0x00007ffff2f0775b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#33 0x00007ffff2f58e53 in ?? () from /usr/lib/libQt5Core.so.5
#34 0x00007fffedbc9b84 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0x00007fffedbc9dc8 in ?? () from /usr/lib/libglib-2.0.so.0
#36 0x00007fffedbc9e6c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#37 0x00007ffff2f59247 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#38 0x00007fffe424be54 in ?? () from /usr/plugins/platforms/libqxcb.so
#39 0x00007ffff2f033d2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#40 0x00007ffff2f0a9ed in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#41 0x00007ffff3bb31ab in QApplication::exec() () from /usr/lib/libQt5Widgets.so.5
#42 0x00007ffff7baceed in kdemain () from /usr/lib/libkdeinit5_kate.so
#43 0x00007ffff7795000 in __libc_start_main () from /usr/lib/libc.so.6
#44 0x000000000040078e in _start ()
Comment 3 Michal Humpula 2014-05-31 09:56:18 UTC
That's not strictly speaking the vi-mode, but yeah I recognize my mess:)

Jerome, how do you close the kate? Need some info to reproduce it.
Comment 4 Christoph Cullmann 2014-07-20 18:01:37 UTC
Git commit 73e88970155b2e330566147b364a13094e798ffb by Christoph Cullmann.
Committed on 19/07/2014 at 15:27.
Pushed by cullmann into branch 'master'.

crash fix, view internal deletes some vimode stuff and that will try to use the bottomViewBar and co.

M  +4    -3    src/view/kateview.cpp

http://commits.kde.org/ktexteditor/73e88970155b2e330566147b364a13094e798ffb

diff --git a/src/view/kateview.cpp b/src/view/kateview.cpp
index a0452b7..8f405cb 100644
--- a/src/view/kateview.cpp
+++ b/src/view/kateview.cpp
@@ -271,6 +271,9 @@ KTextEditor::ViewPrivate::~ViewPrivate()
         factory()->removeClient(this);
     }
 
+    // delete internal view before view bar!
+    delete m_viewInternal;
+
     /**
      * remove view bar again, if needed
      */
@@ -278,9 +281,7 @@ KTextEditor::ViewPrivate::~ViewPrivate()
     m_bottomViewBar = 0;
 
     m_doc->removeView(this);
-
-    delete m_viewInternal;
-
+    
     delete m_renderer;
 
     delete m_config;