Bug 378330

Summary: Kate is very slow when deleting or pasting a lot of text
Product: [Applications] kate Reporter: Aaron Williams <aaronw>
Component: generalAssignee: KWrite Developers <kwrite-bugs-null>
Status: RESOLVED UNMAINTAINED    
Severity: normal CC: gravesricharde
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Aaron Williams 2017-03-31 23:58:47 UTC
I am copying and pasting logs from a konsole session that contain 7000-12000 lines of text, often 100 columns wide.

As I update the logs I select all of the text in a window (<ctrl> A) then hit <backspace> to delete the text. This takes many seconds to complete with the CPU pegged at 100%. This is plain text. The select all is fast but the delete operation is quite slow.

Next I select all of the text in a konsole session with a large buffer which can contain upwards of 12000 lines of text from minicom then type <ctrl V> to paste it into Kate. This takes several minutes to complete, again with the CPU pegged at 100%.

I also see that Kate is using roughly 3.7GB of virtual memory (518K resident).

Note that this is Kate 3.14.9.
Comment 1 Aaron Williams 2017-04-01 00:20:26 UTC
I have an update, one of the files I am editing is around 46K lines long. This file is very slow to delete all of the text.  I'm dreading the paste operation.

Here are a couple of traces from interrupting it from gdb:
#0  0x00007fca3b6e2a53 in QHashData::free_helper(void (*)(QHashData::Node*)) (this=0x1ff75040, node_delete=0x7fca2b1a0c90 <QHash<Kate::TextRange*, QHashDummyValue>::deleteNode2(QHashData::Node*)>) at tools/qhash.cpp:275
#1  0x00007fca2b1a3754 in Kate::TextBlock::insertText(KTextEditor::Cursor const&, QString const&) (this=<optimized out>, x=<optimized out>) at /usr/include/QtCore/qhash.h:570
#2  0x00007fca2b1a3754 in Kate::TextBlock::insertText(KTextEditor::Cursor const&, QString const&) (this=0x7ffd74e7feb0, __in_chrg=<optimized out>) at /usr/include/QtCore/qhash.h:283
#3  0x00007fca2b1a3754 in Kate::TextBlock::insertText(KTextEditor::Cursor const&, QString const&) (this=0x7ffd74e7feb0, __in_chrg=<optimized out>) at /usr/include/QtCore/qset.h:54
#4  0x00007fca2b1a3754 in Kate::TextBlock::insertText(KTextEditor::Cursor const&, QString const&) (this=<optimized out>, position=..., text=...)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextblock.cpp:406
#5  0x00007fca2b19dd8f in Kate::TextBuffer::insertText(KTextEditor::Cursor const&, QString const&) (this=0x699cf00, position=..., text=...)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextbuffer.cpp:322
#6  0x00007fca2b1ffc0f in KateDocument::editInsertText(int, int, QString const&) (this=0x64aa2e0, line=11739, col=<optimized out>, s=...)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:1003
#7  0x00007fca2b202f62 in KateDocument::insertText(KTextEditor::Cursor const&, QString const&, bool) (this=this@entry=0x64aa2e0, position=..., text=..., block=false)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:577
#8  0x00007fca2b20a746 in KateDocument::paste(KateView*, QString const&) (this=0x64aa2e0, view=view@entry=0xfa72220, text=...)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:2876
#9  0x00007fca2b26d0f5 in KateView::paste(QString const*) (this=0xfa72220, textToPaste=<optimized out>) at /usr/src/debug/kate-4.14.3/part/view/kateview.cpp:2406
#10 0x00007fca3b7dd1fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0xad5a390, m=m@entry=0x7fca3d7d84a0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd74e802e0) at kernel/qobject.cpp:3576
#11 0x00007fca3cd2e622 in QAction::triggered(bool) (this=this@entry=0xad5a390, _t1=false)
    at .moc/release-shared/moc_qaction.cpp:276
#12 0x00007fca3cd2ffd3 in QAction::activate(QAction::ActionEvent) (this=this@entry=0xad5a390, event=event@entry=QAction::Trigger) at kernel/qaction.cpp:1257
#13 0x00007fca3d158b69 in QMenuPrivate::activateCausedStack(QList<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) (this=this@entry=0x3355d80, causedStack=..., action=action@entry=0xad5a390, action_e=action_e@entry=QAction::Trigger, self=self@entry=true)
    at widgets/qmenu.cpp:1037
#14 0x00007fca3d15d0b9 in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) (this=0x3355d80, action=0xad5a390, action_e=action_e@entry=QAction::Trigger, self=self@entry=true)
    at widgets/qmenu.cpp:1129
#15 0x00007fca3d160a95 in QMenu::mouseReleaseEvent(QMouseEvent*) (this=this@entry=0x34f8930, e=e@entry=0x7ffd74e80a10) at widgets/qmenu.cpp:2371
#16 0x00007fca3c098f65 in KMenu::mouseReleaseEvent(QMouseEvent*) (this=0x34f8930, e=0x7ffd74e80a10) at /usr/src/debug/kdelibs-4.14.9/kdeui/widgets/kmenu.cpp:464
#17 0x00007fca3cd83c0a in QWidget::event(QEvent*) (this=this@entry=0x34f8930, event=event@entry=0x7ffd74e80a10) at kernel/qwidget.cpp:8389
#18 0x00007fca3d160f1b in QMenu::event(QEvent*) (this=0x34f8930, e=0x7ffd74e80a10)
    at widgets/qmenu.cpp:2480
#19 0x00007fca3cd3476c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x1dc4800, receiver=receiver@entry=0x34f8930, e=e@entry=0x7ffd74e80a10)
    at kernel/qapplication.cpp:4565
#20 0x00007fca3cd3adea in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7ffd74e81360, receiver=receiver@entry=0x34f8930, e=e@entry=0x7ffd74e80a10) at kernel/qapplication.cpp:4108
#21 0x00007fca3bfe2e0a in KApplication::notify(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x34f8930, event=0x7ffd74e80a10)
---Type <return> to continue, or q <return> to quit---
    at /usr/src/debug/kdelibs-4.14.9/kdeui/kernel/kapplication.cpp:311
#22 0x00007fca3b7c92ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=receiver@entry=0x34f8930, event=event@entry=0x7ffd74e80a10)
    at kernel/qcoreapplication.cpp:953
#23 0x00007fca3cd3a5e3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (event=<optimized out>, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231
#24 0x00007fca3cd3a5e3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (receiver=receiver@entry=0x34f8930, event=event@entry=0x7ffd74e80a10, alienWidget=alienWidget@entry=0x0, nativeWidget=nativeWidget@entry=0x34f8930, buttonDown=buttonDown@entry=0x7fca3d814278 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3173
#25 0x00007fca3cdabfcc in QETWidget::translateMouseEvent(_XEvent const*) (this=this@entry=0x34f8930, event=event@entry=0x7ffd74e80d50) at kernel/qapplication_x11.cpp:4464
#26 0x00007fca3cdaa70c in QApplication::x11ProcessEvent(_XEvent*) (this=0x7ffd74e81360, event=event@entry=0x7ffd74e80d50) at kernel/qapplication_x11.cpp:3653
#27 0x00007fca3cdd15c2 in x11EventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1dae5f0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#28 0x00007fca3ae5ea04 in g_main_context_dispatch (context=0x1dc0510) at gmain.c:3111
#29 0x00007fca3ae5ea04 in g_main_context_dispatch (context=context@entry=0x1dc0510)
    at gmain.c:3710
#30 0x00007fca3ae5ec48 in g_main_context_iterate (context=context@entry=0x1dc0510, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781
#31 0x00007fca3ae5ecec in g_main_context_iteration (context=0x1dc0510, may_block=1)
    at gmain.c:3842
#32 0x00007fca3b7f60de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1d6df50, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#33 0x00007fca3cdd1676 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007fca3b7c7e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd74e81120, flags=...) at kernel/qeventloop.cpp:149
#35 0x00007fca3b7c8165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd74e81120, flags=...) at kernel/qeventloop.cpp:204
#36 0x00007fca3b7cd5b9 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1225
#37 0x00007fca3cd32f3c in QApplication::exec() () at kernel/qapplication.cpp:3823
#38 0x00007fca3dbc8ff5 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kate-4.14.3/kate/app/katemain.cpp:381
#39 0x00007fca3d839b05 in __libc_start_main (main=
    0x400730 <main(int, char**)>, argc=3, argv=0x7ffd74e814e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd74e814d8) at libc-start.c:285
#40 0x000000000040075e in _start () at ../sysdeps/x86_64/start.S:122
(gdb) 
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x00007fca2b1a43d0 in Kate::TextBlock::unwrapLine (this=<optimized out>, line=<optimized out>, 
    line@entry=25956, previousBlock=<optimized out>, fixStartLinesStartIndex=<optimized out>)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextblock.cpp:343
343     /usr/src/debug/kate-4.14.3/part/buffer/katetextblock.cpp: No such file or directory.
(gdb) bt
#0  0x00007fca2b1a43d0 in Kate::TextBlock::unwrapLine(int, Kate::TextBlock*, int) (this=<optimized out>, line=<optimized out>, 
    line@entry=25956, previousBlock=<optimized out>, fixStartLinesStartIndex=<optimized out>)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextblock.cpp:343
#1  0x00007fca2b19e67f in Kate::TextBuffer::unwrapLine(int) (this=this@entry=0x69ed580, line=line@entry=25956) at /usr/src/debug/kate-4.14.3/part/buffer/katetextbuffer.cpp:280
#2  0x00007fca2b21249e in KateBuffer::unwrapLines(int, int) (this=0x69ed580, from=from@entry=1, to=to@entry=46079) at /usr/src/debug/kate-4.14.3/part/document/katebuffer.cpp:318
#3  0x00007fca2b203444 in KateDocument::editRemoveLines(int, int) (this=0x7a0e3a0, from=1, to=46079) at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:1319
#4  0x00007fca2b203ee0 in KateDocument::removeText(KTextEditor::Range const&, bool) (this=0x7a0e3a0, _range=..., block=<optimized out>)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:676
#5  0x00007fca2b27ab68 in KateView::removeSelectedText() (this=this@entry=0xd88c480)
    at /usr/src/debug/kate-4.14.3/part/view/kateview.cpp:2056
#6  0x00007fca2b2040fc in KateDocument::backspace(KateView*, KTextEditor::Cursor const&) (this=<optimized out>, view=0xd88c480, c=...)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:2735
#7  0x00007fca2b27e42f in KateViewInternal::doBackspace() (this=0x110f8e10)
    at /usr/src/debug/kate-4.14.3/part/view/kateviewinternal.cpp:829
#8  0x00007fca3b7dd1fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x78f8250, m=m@entry=0x7fca3d7d84a0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd74e800f0) at kernel/qobject.cpp:3576
#9  0x00007fca3cd2e622 in QAction::triggered(bool) (this=this@entry=0x78f8250, _t1=false)
    at .moc/release-shared/moc_qaction.cpp:276
#10 0x00007fca3cd2ffd3 in QAction::activate(QAction::ActionEvent) (this=0x78f8250, event=event@entry=QAction::Trigger) at kernel/qaction.cpp:1257
#11 0x00007fca3cd3012c in QAction::event(QEvent*) (this=<optimized out>, e=e@entry=0x7ffd74e80490) at kernel/qaction.cpp:1183
#12 0x00007fca3bf0d2bf in KAction::event(QEvent*) (this=<optimized out>, event=0x7ffd74e80490)
    at /usr/src/debug/kdelibs-4.14.9/kdeui/actions/kaction.cpp:131
#13 0x00007fca3cd3476c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x1dc4800, receiver=receiver@entry=0x78f8250, e=e@entry=0x7ffd74e80490)
    at kernel/qapplication.cpp:4565
#14 0x00007fca3cd3acad in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7ffd74e81360, receiver=receiver@entry=0x78f8250, e=e@entry=0x7ffd74e80490) at kernel/qapplication.cpp:4351
#15 0x00007fca3bfe2e0a in KApplication::notify(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x78f8250, event=0x7ffd74e80490)
    at /usr/src/debug/kdelibs-4.14.9/kdeui/kernel/kapplication.cpp:311
#16 0x00007fca3b7c92ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x78f8250, event=event@entry=0x7ffd74e80490) at kernel/qcoreapplication.cpp:953
#17 0x00007fca3cd659d6 in QShortcutMap::dispatchEvent(QKeyEvent*) (event=0x7ffd74e80490, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231
#18 0x00007fca3cd659d6 in QShortcutMap::dispatchEvent(QKeyEvent*) (this=this@entry=0x1dc4928, e=e@entry=0x7ffd74e807d0) at kernel/qshortcutmap.cpp:887
#19 0x00007fca3cd65b0c in QShortcutMap::tryShortcutEvent(QObject*, QKeyEvent*) (this=0x1dc4928, o=o@entry=0x110f8e10, e=e@entry=0x7ffd74e807d0) at kernel/qshortcutmap.cpp:367
#20 0x00007fca3cd3bfe3 in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7ffd74e81360, receiver=receiver@entry=0x110f8e10, e=e@entry=0x7ffd74e807d0)
    at kernel/qapplication.cpp:3989
#21 0x00007fca3bfe2e0a in KApplication::notify(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x110f8e10, event=0x7ffd74e807d0)
    at /usr/src/debug/kdelibs-4.14.9/kdeui/kernel/kapplication.cpp:311
#22 0x00007fca3b7c92ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=receiver@entry=0x110f8e10, event=event@entry=0x7ffd74e807d0)
---Type <return> to continue, or q <return> to quit---
    at kernel/qcoreapplication.cpp:953
#23 0x00007fca3cd33116 in qt_sendSpontaneousEvent(QObject*, QEvent*) (event=event@entry=0x7ffd74e807d0, receiver=receiver@entry=0x110f8e10) at ../../src/corelib/kernel/qcoreapplication.h:234
#24 0x00007fca3cd33116 in qt_sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x110f8e10, event=event@entry=0x7ffd74e807d0) at kernel/qapplication.cpp:5563
#25 0x00007fca3cdceab7 in QKeyMapper::sendKeyEvent(QWidget*, bool, QEvent::Type, int, QFlags<Qt::KeyboardModifier>, QString const&, bool, int, unsigned int, unsigned int, unsigned int, bool*) (keyWidget=keyWidget@entry=0x110f8e10, grab=grab@entry=false, type=QEvent::KeyPress, code=16777219, modifiers=..., text=..., autorepeat=autorepeat@entry=false, count=1, nativeScanCode=22, nativeVirtualKey=65288, nativeModifiers=0) at kernel/qkeymapper_x11.cpp:1866
#26 0x00007fca3cdcee59 in QKeyMapperPrivate::translateKeyEvent(QWidget*, _XEvent const*, bool) (this=0x1e3c170, keyWidget=keyWidget@entry=0x110f8e10, event=event@entry=0x7ffd74e80d50, grab=grab@entry=false) at kernel/qkeymapper_x11.cpp:1836
#27 0x00007fca3cdaaa5f in QApplication::x11ProcessEvent(_XEvent*) (this=0x7ffd74e81360, event=event@entry=0x7ffd74e80d50) at kernel/qapplication_x11.cpp:3546
#28 0x00007fca3cdd15c2 in x11EventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1dae5f0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#29 0x00007fca3ae5ea04 in g_main_context_dispatch (context=0x1dc0510) at gmain.c:3111
#30 0x00007fca3ae5ea04 in g_main_context_dispatch (context=context@entry=0x1dc0510)
    at gmain.c:3710
#31 0x00007fca3ae5ec48 in g_main_context_iterate (context=context@entry=0x1dc0510, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781
#32 0x00007fca3ae5ecec in g_main_context_iteration (context=0x1dc0510, may_block=1)
    at gmain.c:3842
#33 0x00007fca3b7f60de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1d6df50, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#34 0x00007fca3cdd1676 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#35 0x00007fca3b7c7e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd74e81120, flags=...) at kernel/qeventloop.cpp:149
#36 0x00007fca3b7c8165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd74e81120, flags=...) at kernel/qeventloop.cpp:204
#37 0x00007fca3b7cd5b9 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1225
#38 0x00007fca3cd32f3c in QApplication::exec() () at kernel/qapplication.cpp:3823
#39 0x00007fca3dbc8ff5 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kate-4.14.3/kate/app/katemain.cpp:381
#40 0x00007fca3d839b05 in __libc_start_main (main=
    0x400730 <main(int, char**)>, argc=3, argv=0x7ffd74e814e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd74e814d8) at libc-start.c:285
#41 0x000000000040075e in _start () at ../sysdeps/x86_64/start.S:122
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
_int_malloc (av=0x7fca3dbbc620 <main_arena>, bytes=32) at malloc.c:3349
3349    malloc.c: No such file or directory.
(gdb) bt
#0  0x00007fca3d891467 in _int_malloc (av=0x7fca3dbbc620 <main_arena>, bytes=32)
    at malloc.c:3349
#1  0x00007fca3d8936e0 in __GI___libc_malloc (bytes=32) at malloc.c:2888
#2  0x00007fca3b6e29b9 in QHashData::allocateNode(int) (this=<optimized out>, nodeAlign=nodeAlign@entry=8) at tools/qhash.cpp:179
#3  0x00007fca2b1a245b in Kate::TextBlock::updateRange(Kate::TextRange*) (anextNode=0x22739c50, avalue=<optimized out>, akey=<synthetic pointer>, ah=453178880, this=0xc0f4838)
    at /usr/include/QtCore/qhash.h:545
#4  0x00007fca2b1a245b in Kate::TextBlock::updateRange(Kate::TextRange*) (akey=<synthetic pointer>, this=0xc0f4838) at /usr/include/QtCore/qhash.h:747
#5  0x00007fca2b1a245b in Kate::TextBlock::updateRange(Kate::TextRange*) (this=this@entry=0xc0f4810, range=range@entry=0x1b02f600)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextblock.cpp:644
#6  0x00007fca2b1a6f98 in Kate::TextRange::fixLookup(int, int, int, int) (this=0x1b02f600, oldStartLine=<optimized out>, oldEndLine=<optimized out>, startLine=25866, endLine=25866)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextrange.cpp:232
#7  0x00007fca2b1a750d in Kate::TextRange::checkValidity(int, int, bool) (this=0x1b02f600, oldStartLine=oldStartLine@entry=-1, oldEndLine=oldEndLine@entry=-1, notifyAboutChange=notifyAboutChange@entry=true) at /usr/src/debug/kate-4.14.3/part/buffer/katetextrange.cpp:186
#8  0x00007fca2b1a43a5 in Kate::TextBlock::unwrapLine(int, Kate::TextBlock*, int) (this=<optimized out>, line=<optimized out>, 
    line@entry=25867, previousBlock=<optimized out>, fixStartLinesStartIndex=<optimized out>)
    at /usr/src/debug/kate-4.14.3/part/buffer/katetextblock.cpp:344
#9  0x00007fca2b19e67f in Kate::TextBuffer::unwrapLine(int) (this=this@entry=0x69ed580, line=line@entry=25867) at /usr/src/debug/kate-4.14.3/part/buffer/katetextbuffer.cpp:280
#10 0x00007fca2b21249e in KateBuffer::unwrapLines(int, int) (this=0x69ed580, from=from@entry=1, to=to@entry=46079) at /usr/src/debug/kate-4.14.3/part/document/katebuffer.cpp:318
#11 0x00007fca2b203444 in KateDocument::editRemoveLines(int, int) (this=0x7a0e3a0, from=1, to=46079) at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:1319
#12 0x00007fca2b203ee0 in KateDocument::removeText(KTextEditor::Range const&, bool) (this=0x7a0e3a0, _range=..., block=<optimized out>)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:676
#13 0x00007fca2b27ab68 in KateView::removeSelectedText() (this=this@entry=0xd88c480)
    at /usr/src/debug/kate-4.14.3/part/view/kateview.cpp:2056
#14 0x00007fca2b2040fc in KateDocument::backspace(KateView*, KTextEditor::Cursor const&) (this=<optimized out>, view=0xd88c480, c=...)
    at /usr/src/debug/kate-4.14.3/part/document/katedocument.cpp:2735
#15 0x00007fca2b27e42f in KateViewInternal::doBackspace() (this=0x110f8e10)
    at /usr/src/debug/kate-4.14.3/part/view/kateviewinternal.cpp:829
#16 0x00007fca3b7dd1fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x78f8250, m=m@entry=0x7fca3d7d84a0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd74e800f0) at kernel/qobject.cpp:3576
#17 0x00007fca3cd2e622 in QAction::triggered(bool) (this=this@entry=0x78f8250, _t1=false)
    at .moc/release-shared/moc_qaction.cpp:276
#18 0x00007fca3cd2ffd3 in QAction::activate(QAction::ActionEvent) (this=0x78f8250, event=event@entry=QAction::Trigger) at kernel/qaction.cpp:1257
#19 0x00007fca3cd3012c in QAction::event(QEvent*) (this=<optimized out>, e=e@entry=0x7ffd74e80490) at kernel/qaction.cpp:1183
#20 0x00007fca3bf0d2bf in KAction::event(QEvent*) (this=<optimized out>, event=0x7ffd74e80490)
    at /usr/src/debug/kdelibs-4.14.9/kdeui/actions/kaction.cpp:131
#21 0x00007fca3cd3476c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x1dc4800, receiver=receiver@entry=0x78f8250, e=e@entry=0x7ffd74e80490)
    at kernel/qapplication.cpp:4565
#22 0x00007fca3cd3acad in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7ffd74e81360, receiver=receiver@entry=0x78f8250, e=e@entry=0x7ffd74e80490) at kernel/qapplication.cpp:4351
---Type <return> to continue, or q <return> to quit---
#23 0x00007fca3bfe2e0a in KApplication::notify(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x78f8250, event=0x7ffd74e80490)
    at /usr/src/debug/kdelibs-4.14.9/kdeui/kernel/kapplication.cpp:311
#24 0x00007fca3b7c92ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x78f8250, event=event@entry=0x7ffd74e80490) at kernel/qcoreapplication.cpp:953
#25 0x00007fca3cd659d6 in QShortcutMap::dispatchEvent(QKeyEvent*) (event=0x7ffd74e80490, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231
#26 0x00007fca3cd659d6 in QShortcutMap::dispatchEvent(QKeyEvent*) (this=this@entry=0x1dc4928, e=e@entry=0x7ffd74e807d0) at kernel/qshortcutmap.cpp:887
#27 0x00007fca3cd65b0c in QShortcutMap::tryShortcutEvent(QObject*, QKeyEvent*) (this=0x1dc4928, o=o@entry=0x110f8e10, e=e@entry=0x7ffd74e807d0) at kernel/qshortcutmap.cpp:367
#28 0x00007fca3cd3bfe3 in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7ffd74e81360, receiver=receiver@entry=0x110f8e10, e=e@entry=0x7ffd74e807d0)
    at kernel/qapplication.cpp:3989
#29 0x00007fca3bfe2e0a in KApplication::notify(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=0x110f8e10, event=0x7ffd74e807d0)
    at /usr/src/debug/kdelibs-4.14.9/kdeui/kernel/kapplication.cpp:311
#30 0x00007fca3b7c92ad in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffd74e81360, receiver=receiver@entry=0x110f8e10, event=event@entry=0x7ffd74e807d0)
    at kernel/qcoreapplication.cpp:953
#31 0x00007fca3cd33116 in qt_sendSpontaneousEvent(QObject*, QEvent*) (event=event@entry=0x7ffd74e807d0, receiver=receiver@entry=0x110f8e10) at ../../src/corelib/kernel/qcoreapplication.h:234
#32 0x00007fca3cd33116 in qt_sendSpontaneousEvent(QObject*, QEvent*) (receiver=receiver@entry=0x110f8e10, event=event@entry=0x7ffd74e807d0) at kernel/qapplication.cpp:5563
#33 0x00007fca3cdceab7 in QKeyMapper::sendKeyEvent(QWidget*, bool, QEvent::Type, int, QFlags<Qt::KeyboardModifier>, QString const&, bool, int, unsigned int, unsigned int, unsigned int, bool*) (keyWidget=keyWidget@entry=0x110f8e10, grab=grab@entry=false, type=QEvent::KeyPress, code=16777219, modifiers=..., text=..., autorepeat=autorepeat@entry=false, count=1, nativeScanCode=22, nativeVirtualKey=65288, nativeModifiers=0) at kernel/qkeymapper_x11.cpp:1866
#34 0x00007fca3cdcee59 in QKeyMapperPrivate::translateKeyEvent(QWidget*, _XEvent const*, bool) (this=0x1e3c170, keyWidget=keyWidget@entry=0x110f8e10, event=event@entry=0x7ffd74e80d50, grab=grab@entry=false) at kernel/qkeymapper_x11.cpp:1836
#35 0x00007fca3cdaaa5f in QApplication::x11ProcessEvent(_XEvent*) (this=0x7ffd74e81360, event=event@entry=0x7ffd74e80d50) at kernel/qapplication_x11.cpp:3546
#36 0x00007fca3cdd15c2 in x11EventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1dae5f0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#37 0x00007fca3ae5ea04 in g_main_context_dispatch (context=0x1dc0510) at gmain.c:3111
#38 0x00007fca3ae5ea04 in g_main_context_dispatch (context=context@entry=0x1dc0510)
    at gmain.c:3710
#39 0x00007fca3ae5ec48 in g_main_context_iterate (context=context@entry=0x1dc0510, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781
#40 0x00007fca3ae5ecec in g_main_context_iteration (context=0x1dc0510, may_block=1)
    at gmain.c:3842
#41 0x00007fca3b7f60de in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1d6df50, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#42 0x00007fca3cdd1676 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#43 0x00007fca3b7c7e6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd74e81120, flags=...) at kernel/qeventloop.cpp:149
#44 0x00007fca3b7c8165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd74e81120, flags=...) at kernel/qeventloop.cpp:204
#45 0x00007fca3b7cd5b9 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1225
#46 0x00007fca3cd32f3c in QApplication::exec() () at kernel/qapplication.cpp:3823
#47 0x00007fca3dbc8ff5 in kdemain(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kate-4.14.3/kate/app/katemain.cpp:381
---Type <return> to continue, or q <return> to quit---
#48 0x00007fca3d839b05 in __libc_start_main (main=
    0x400730 <main(int, char**)>, argc=3, argv=0x7ffd74e814e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd74e814d8) at libc-start.c:285
#49 0x000000000040075e in _start () at ../sysdeps/x86_64/start.S:122
(gdb) c
Comment 2 Rick Graves 2017-04-12 12:17:22 UTC
See https://bugs.kde.org/show_bug.cgi?id=378579#c11

Maybe kate now needs more cores in the CPU.
Comment 3 Christoph Feck 2017-04-21 15:11:35 UTC
The Qt4 version of Kate is long unmaintained. Please update to a recent version.