<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>350299</bug_id>
          
          <creation_ts>2015-07-16 17:01:48 +0000</creation_ts>
          <short_desc>Kate with vi mode, &lt;c&gt;&lt;e&gt; near end of file causes crash</short_desc>
          <delta_ts>2017-10-25 14:39:21 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>kate</product>
          <component>Vi Input Mode</component>
          <version>3.14.2</version>
          <rep_platform>Debian stable</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>drkonqi</keywords>
          <priority>NOR</priority>
          <bug_severity>crash</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Christopher Leonard">c.j.leonard</reporter>
          <assigned_to name="KWrite Developers">kwrite-bugs-null</assigned_to>
          <cc>c.j.leonard</cc>
    
    <cc>dnicolas</cc>
    
    <cc>mikisabate</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1532005</commentid>
    <comment_count>0</comment_count>
    <who name="Christopher Leonard">c.j.leonard</who>
    <bug_when>2015-07-16 17:01:48 +0000</bug_when>
    <thetext>Application: kate (3.14.2)
KDE Platform Version: 4.14.2
Qt Version: 4.8.6
Operating System: Linux 3.16.0-4-686-pae i686
Distribution: Debian GNU/Linux 8.1 (jessie)

-- Information about the crash:
- What I was doing when the application crashed:
Using the vi input option, near the end of a file, if you have the cursor in a position where &lt;e&gt; can no longer advances the cursor, the command &lt;c&gt;&lt;e&gt; (which attempts to delete until the next &lt;e&gt; position and start insert mode) will cause Kate to crash / immediately terminate.

- Custom settings of the application:
* vi mode
* Latest version of Kate 4 distributed by Debian Jessie

The crash can be reproduced every time.

-- Backtrace:
Application: Kate (kate), signal: Segmentation fault
Using host libthread_db library &quot;/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1&quot;.
[Current thread is 1 (Thread 0xb4954740 (LWP 3605))]

Thread 3 (Thread 0xb1039b40 (LWP 3606)):
#0  0xb77a1d40 in __kernel_vsyscall ()
#1  0xb5d08c4b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:187
#2  0xb76c41bc in __pthread_cond_wait (cond=0xb17c18f0, mutex=0xb17c18d8) at forward.c:149
#3  0xb16a844f in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#4  0xb16a848c in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#5  0xb5d04efb in start_thread (arg=0xb1039b40) at pthread_create.c:309
#6  0xb76b762e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129

Thread 2 (Thread 0xaecdab40 (LWP 3608)):
#0  __libc_disable_asynccancel (oldtype=2) at ../nptl/cancellation.c:82
#1  0xb76acdf4 in poll () at ../sysdeps/unix/syscall-template.S:81
#2  0xb5c0e0b0 in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb5bff054 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb5bff196 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb6002854 in QEventDispatcherGlib::processEvents (this=0xae300468, flags=...) at kernel/qeventdispatcher_glib.cpp:427
#6  0xb5fced9f in QEventLoop::processEvents (this=0xaecda254, flags=...) at kernel/qeventloop.cpp:149
#7  0xb5fcf12e in QEventLoop::exec (this=0xaecda254, flags=...) at kernel/qeventloop.cpp:204
#8  0xb5eb3b0b in QThread::exec (this=0xa248cf8) at thread/qthread.cpp:538
#9  0xb5fae906 in QInotifyFileSystemWatcherEngine::run (this=0xa248cf8) at io/qfilesystemwatcher_inotify.cpp:265
#10 0xb5eb670e in QThreadPrivate::start (arg=0xa248cf8) at thread/qthread_unix.cpp:349
#11 0xb5d04efb in start_thread (arg=0xaecdab40) at pthread_create.c:309
#12 0xb76b762e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129

Thread 1 (Thread 0xb4954740 (LWP 3605)):
[KCrash Handler]
#7  detach (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:147
#8  data (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:152
#9  operator[] (i=0, this=0x0) at ../../include/QtCore/../../src/corelib/tools/qvector.h:360
#10 QTextLine::width (this=0xbf8b2a18) at text/qtextlayout.cpp:1398
#11 0xb1931bd4 in KateRenderer::cursorToX (this=0xa272718, range=..., pos=..., returnPastLine=false) at ../../part/render/katerenderer.cpp:1058
#12 0xb1988e72 in KateViewInternal::makeVisible (this=0xa2664f0, c=..., endCol=-1, force=false, center=false, calledExternally=false) at ../../part/view/kateviewinternal.cpp:666
#13 0xb198bc0d in KateViewInternal::updateCursor (this=0xa2664f0, newCursor=..., force=false, center=false, calledExternally=false) at ../../part/view/kateviewinternal.cpp:1901
#14 0xb19b3045 in KateViModeBase::updateCursor (this=0xa421e50, c=...) at ../../part/vimode/katevimodebase.cpp:934
#15 0xb19c844e in KateViNormalMode::commandChange (this=0xa421e50) at ../../part/vimode/katevinormalmode.cpp:1159
#16 0xb19d62c0 in KateViCommand::execute (this=0xa3674f0) at ../../part/vimode/katevicommand.cpp:38
#17 0xb19c7218 in KateViNormalMode::executeCommand (this=0xa421e50, cmd=0xa3674f0) at ../../part/vimode/katevinormalmode.cpp:515
#18 0xb19ce1e0 in KateViNormalMode::handleKeypress (this=0xa421e50, e=0x0) at ../../part/vimode/katevinormalmode.cpp:380
#19 0xb19abe8a in KateViInputModeManager::handleKeypress (this=0xa421d80, e=0xbf8b30c0) at ../../part/vimode/kateviinputmodemanager.cpp:162
#20 0xb198764c in KateViewInternal::keyPressEvent (this=0xa2664f0, e=0xbf8b30c0) at ../../part/view/kateviewinternal.cpp:2351
#21 0xb198dcef in KateViewInternal::eventFilter (this=0xa2664f0, obj=0xa2664f0, e=0xbf8b30c0) at ../../part/view/kateviewinternal.cpp:2239
#22 0xb5fd05a3 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9b338a0, receiver=0xa2664f0, event=0xbf8b30c0) at kernel/qcoreapplication.cpp:1065
#23 0xb6bf04e8 in QApplicationPrivate::notify_helper (this=0x9b338a0, receiver=0xa2664f0, e=0xbf8b30c0) at kernel/qapplication.cpp:4566
#24 0xb6bf8e03 in QApplication::notify (this=0xbf8b3d48, receiver=0xbf8b30c0, e=0xbf8b30c0) at kernel/qapplication.cpp:4011
#25 0xb63c0cdc in KApplication::notify (this=0xbf8b3d48, receiver=0xa2664f0, event=0xbf8b30c0) at ../../kdeui/kernel/kapplication.cpp:311
#26 0xb5fd042a in QCoreApplication::notifyInternal (this=0xbf8b3d48, receiver=0xa2664f0, event=0xbf8b30c0) at kernel/qcoreapplication.cpp:955
#27 0xb19ad395 in sendEvent (event=&lt;optimized out&gt;, receiver=&lt;optimized out&gt;) at /usr/include/qt4/QtCore/qcoreapplication.h:231
#28 KateViInputModeManager::feedKeyPresses (this=0xa421d80, keyPresses=...) at ../../part/vimode/kateviinputmodemanager.cpp:262
#29 0xb19f9a68 in KateViKeyMapper::playBackRejectedKeys (this=0xa429a50) at ../../part/vimode/katevikeymapper.cpp:64
#30 0xb19f9ff8 in KateViKeyMapper::handleKeypress (this=0xa429a50, key=...) at ../../part/vimode/katevikeymapper.cpp:123
#31 0xb19abcc3 in KateViInputModeManager::handleKeypress (this=0xa421d80, e=0xbf8b35e4) at ../../part/vimode/kateviinputmodemanager.cpp:140
#32 0xb198764c in KateViewInternal::keyPressEvent (this=0xa2664f0, e=0xbf8b35e4) at ../../part/view/kateviewinternal.cpp:2351
#33 0xb198dcef in KateViewInternal::eventFilter (this=0xa2664f0, obj=0xa2664f0, e=0xbf8b35e4) at ../../part/view/kateviewinternal.cpp:2239
#34 0xb5fd05a3 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9b338a0, receiver=0xa2664f0, event=0xbf8b35e4) at kernel/qcoreapplication.cpp:1065
#35 0xb6bf04e8 in QApplicationPrivate::notify_helper (this=0x9b338a0, receiver=0xa2664f0, e=0xbf8b35e4) at kernel/qapplication.cpp:4566
#36 0xb6bf8e03 in QApplication::notify (this=0xbf8b3d48, receiver=0xbf8b35e4, e=0xbf8b35e4) at kernel/qapplication.cpp:4011
#37 0xb63c0cdc in KApplication::notify (this=0xbf8b3d48, receiver=0xa2664f0, event=0xbf8b35e4) at ../../kdeui/kernel/kapplication.cpp:311
#38 0xb5fd042a in QCoreApplication::notifyInternal (this=0xbf8b3d48, receiver=0xa2664f0, event=0xbf8b35e4) at kernel/qcoreapplication.cpp:955
#39 0xb6bee887 in sendSpontaneousEvent (event=0xbf8b35e4, receiver=0xa2664f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#40 qt_sendSpontaneousEvent (receiver=0xa2664f0, event=0xbf8b35e4) at kernel/qapplication.cpp:5568
#41 0xb6ca14c9 in QKeyMapper::sendKeyEvent (keyWidget=0xa2664f0, grab=false, type=QEvent::KeyPress, code=69, modifiers=..., text=..., autorepeat=false, count=1, nativeScanCode=26, nativeVirtualKey=101, nativeModifiers=0) at kernel/qkeymapper_x11.cpp:1866
#42 0xb6ca19ec in QKeyMapperPrivate::translateKeyEvent (this=0x9b62d38, keyWidget=0xa2664f0, event=0xbf8b393c, grab=false) at kernel/qkeymapper_x11.cpp:1836
#43 0xb6c78e5a in QApplication::x11ProcessEvent (this=0xbf8b3d48, event=0xbf8b393c) at kernel/qapplication_x11.cpp:3556
#44 0xb6ca4441 in x11EventSourceDispatch (s=0x9b3afb0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#45 0xb5bfeda4 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#46 0xb5bff0c9 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#47 0xb5bff196 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#48 0xb6002839 in QEventDispatcherGlib::processEvents (this=0x9b04ef0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#49 0xb6ca4516 in QGuiEventDispatcherGlib::processEvents (this=0x9b04ef0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#50 0xb5fced9f in QEventLoop::processEvents (this=0xbf8b3c14, flags=...) at kernel/qeventloop.cpp:149
#51 0xb5fcf12e in QEventLoop::exec (this=0xbf8b3c14, flags=...) at kernel/qeventloop.cpp:204
#52 0xb5fd52b6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1227
#53 0xb6bee614 in QApplication::exec () at kernel/qapplication.cpp:3828
#54 0xb77984d5 in kdemain (argc=2, argv=0xbf8b3e64) at ../../../kate/app/katemain.cpp:381
#55 0x0804854b in main (argc=2, argv=0xbf8b3e64) at kate_dummy.cpp:3

Possible duplicates by query: bug 331021.

Reported using DrKonqi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532055</commentid>
    <comment_count>1</comment_count>
    <who name="Miquel Sabaté">mikisabate</who>
    <bug_when>2015-07-17 11:24:10 +0000</bug_when>
    <thetext>Can reproduce. Here&apos;s the backtrace that I got from current master:

#0  0x00007ffff0c20638 in raise () at /lib64/libc.so.6
#1  0x00007ffff0c21a1a in abort () at /lib64/libc.so.6
#2  0x00007ffff18c2005 in  () at /usr/lib64/libQt5Core.so.5
#3  0x00007ffff18bd5be in  () at /usr/lib64/libQt5Core.so.5
#4  0x00007ffff7653654 in Kate::TextFolding::lineToVisibleLine(int) const (this=0x7b4140, line=-1) at ../src/buffer/katetextfolding.cpp:390
#5  0x00007ffff7798388 in KateViewInternal::viewLineOffset(KTextEditor::Cursor const&amp;, int, bool) (this=0x7cc1b0, virtualCursor=..., offset=0, keepX=false)
    at ../src/view/kateviewinternal.cpp:1392
#6  0x00007ffff779592e in KateViewInternal::makeVisible(KTextEditor::Cursor const&amp;, int, bool, bool, bool) (this=0x7cc1b0, c=..., endCol=-1, force=false, center=false, calledExternally=false)
    at ../src/view/kateviewinternal.cpp:656
#7  0x00007ffff779b2e5 in KateViewInternal::updateCursor(KTextEditor::Cursor const&amp;, bool, bool, bool) (this=0x7cc1b0, newCursor=..., force=false, center=false, calledExternally=false)
    at ../src/view/kateviewinternal.cpp:1972
#8  0x00007ffff782d5a4 in KateAbstractInputMode::updateCursor(KTextEditor::Cursor const&amp;) (this=0x94ced0, c=...) at ../src/inputmode/kateabstractinputmode.cpp:39
#9  0x00007ffff786d904 in KateVi::InputModeManager::updateCursor(KTextEditor::Cursor const&amp;) (this=0x7ceac0, c=...) at ../src/vimode/inputmodemanager.cpp:457
#10 0x00007ffff783972b in KateVi::ModeBase::updateCursor(KTextEditor::Cursor const&amp;) const (this=0x97f7f0, c=...) at ../src/vimode/modes/modebase.cpp:792
#11 0x00007ffff78413be in KateVi::NormalViMode::commandChange() (this=0x97f7f0) at ../src/vimode/modes/normalvimode.cpp:1130
#12 0x00007ffff786f044 in KateVi::Command::execute() const (this=0x7ca010) at ../src/vimode/command.cpp:43
#13 0x00007ffff783ecfa in KateVi::NormalViMode::executeCommand(KateVi::Command const*) (this=0x97f7f0, cmd=0x7ca010) at ../src/vimode/modes/normalvimode.cpp:488
#14 0x00007ffff783e616 in KateVi::NormalViMode::handleKeypress(QKeyEvent const*) (this=0x97f7f0, e=0x7fffffffb780) at ../src/vimode/modes/normalvimode.cpp:374
#15 0x00007ffff786c880 in KateVi::InputModeManager::handleKeypress(QKeyEvent const*) (this=0x7ceac0, e=0x7fffffffb780) at ../src/vimode/inputmodemanager.cpp:149
#16 0x00007ffff782f1fb in KateViInputMode::keyPress(QKeyEvent*) (this=0x94ced0, e=0x7fffffffb780) at ../src/inputmode/kateviinputmode.cpp:284
#17 0x00007ffff779d4ad in KateViewInternal::keyPressEvent(QKeyEvent*) (this=0x7cc1b0, e=0x7fffffffb780) at ../src/view/kateviewinternal.cpp:2378
#18 0x00007ffff779ceab in KateViewInternal::eventFilter(QObject*, QEvent*) (this=0x7cc1b0, obj=0x7cc1b0, e=0x7fffffffb780) at ../src/view/kateviewinternal.cpp:2290
#19 0x00007ffff1aa3a25 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#20 0x00007ffff2e3a84c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#21 0x00007ffff2e407b0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#22 0x00007ffff1aa3bf3 in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#23 0x00007ffff77a45c3 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=0x7cc1b0, event=0x7fffffffb780) at /usr/include/qt5/QtCore/qcoreapplication.h:228
#24 0x00007ffff786cf68 in KateVi::InputModeManager::feedKeyPresses(QString const&amp;) const (this=0x7ceac0, keyPresses=...) at ../src/vimode/inputmodemanager.cpp:235
#25 0x00007ffff7888f46 in KateVi::KeyMapper::playBackRejectedKeys() (this=0x84db10) at ../src/vimode/keymapper.cpp:69
#26 0x00007ffff7889226 in KateVi::KeyMapper::handleKeypress(QChar) (this=0x84db10, key=...) at ../src/vimode/keymapper.cpp:122
#27 0x00007ffff786c7b1 in KateVi::InputModeManager::handleKeypress(QKeyEvent const*) (this=0x7ceac0, e=0x7fffffffc200) at ../src/vimode/inputmodemanager.cpp:133
#28 0x00007ffff782f1fb in KateViInputMode::keyPress(QKeyEvent*) (this=0x94ced0, e=0x7fffffffc200) at ../src/inputmode/kateviinputmode.cpp:284
#29 0x00007ffff779d4ad in KateViewInternal::keyPressEvent(QKeyEvent*) (this=0x7cc1b0, e=0x7fffffffc200) at ../src/view/kateviewinternal.cpp:2378
#30 0x00007ffff779ceab in KateViewInternal::eventFilter(QObject*, QEvent*) (this=0x7cc1b0, obj=0x7cc1b0, e=0x7fffffffc200) at ../src/view/kateviewinternal.cpp:2290
#31 0x00007ffff1aa3a25 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#32 0x00007ffff2e3a84c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#33 0x00007ffff2e407b0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#34 0x00007ffff1aa3bf3 in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#35 0x00007ffff2e9327b in  () at /usr/lib64/libQt5Widgets.so.5
#36 0x00007ffff2e3a86c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#37 0x00007ffff2e3fb80 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#38 0x00007ffff1aa3bf3 in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#39 0x00007ffff269f031 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /usr/lib64/libQt5Gui.so.5
#40 0x00007ffff26a3cd5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib64/libQt5Gui.so.5
#41 0x00007ffff268a8f8 in QWindowSystemInterface::sendWindowSystemEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () at /usr/lib64/libQt5Gui.so.5
#42 0x00007fffe5ce3d40 in  () at /usr/lib64/qt5/plugins/platforms/libqxcb.so
#43 0x00007fffecf88cc7 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#44 0x00007fffecf88ef8 in  () at /usr/lib64/libglib-2.0.so.0
#45 0x00007fffecf88f9c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
#46 0x00007ffff1af835f in QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () at /usr/lib64/libQt5Core.so.5
#47 0x00007ffff1aa15ea in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () at /usr/lib64/libQt5Core.so.5
#48 0x00007ffff1aa8d6d in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#49 0x00007ffff7bc8e66 in kdemain(int, char**) (argc=1, argv=0x7fffffffd688) at ../kwrite/main.cpp:266
#50 0x0000000000400ba8 in main(int, char**) (argc=1, argv=0x7fffffffd688) at kwrite/kwrite_dummy.cpp:3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548642</commentid>
    <comment_count>2</comment_count>
    <who name="Dominik Haumann">dhaumann</who>
    <bug_when>2015-10-08 07:43:42 +0000</bug_when>
    <thetext>Cannot reproduce, can you try again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705834</commentid>
    <comment_count>3</comment_count>
    <who name="Diego Gangl">dnicolas</who>
    <bug_when>2017-10-13 14:38:44 +0000</bug_when>
    <thetext>Cannot reproduce on 17.08.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708072</commentid>
    <comment_count>4</comment_count>
    <who name="Christoph Feck">cfeck</who>
    <bug_when>2017-10-25 14:39:21 +0000</bug_when>
    <thetext>Thanks for the update; let&apos;s assume it is fixed. If you get a crash with newer version, it is best to file a new ticket with an updated backtrace.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>