Version: 3.2.2 (using 4.2.2 (KDE 4.2.2), Kubuntu packages) Compiler: cc OS: Linux (x86_64) release 2.6.28-12-generic I have configured Kate to automatically insert line breaks for lines that grow longer than 100 characters. Now I do the following: 1. I enter “aaaa” and then a space. 2. I make 20 copies of this behind so that the first line now contains 20 groups of “aaaa” and a space, and the second line contains a single one of these groups. 3. I insert “bb” at the beginning of the first line so that the last “aaaa” group on this line moves to the second line. 4. I press Ctrl + Z to undo the last change. Now, Kate crashes. While doing real work, I had also the problem that an undo didn’t crash Kate but disturbed my text. I think, this is especially dangerous, since you might destroy your text and overwrite a correct file with this destroyed content without noticing.
Can reproduce. Thanks for the steps, backtrace: #0 0xb7f25430 in __kernel_vsyscall () #1 0xb67c38a0 in raise () from /lib/tls/i686/cmov/libc.so.6 #2 0xb67c5268 in abort () from /lib/tls/i686/cmov/libc.so.6 #3 0xb6a9a74d in qt_message_output (msgType=QtFatalMsg, buf=0xa058e08 "ASSERT: \"smartGroup\" in file /home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp, line 303") at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:2006 #4 0xb6a9a807 in qFatal (msg=0xb6bce5b8 "ASSERT: \"%s\" in file %s, line %d") at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:2201 #5 0xb6a9a8c5 in qt_assert (assertion=0xb4599823 "smartGroup", file=0xb45997e8 "/home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp", line=303) at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:1777 #6 0xb44b4217 in KateSmartManager::groupForLine (this=0x9c6ade0, line=1) at /home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp:303 #7 0xb44b5d68 in KateSmartManager::slotTextChanged (this=0x9c6ade0, edit=0x9ff4e50) at /home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp:313 #8 0xb44b6337 in KateSmartManager::qt_metacall (this=0x9c6ade0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbff25d5c) at /home/dh/kde/trunk/build/kdelibs/kate/katesmartmanager.moc:74 #9 0xb6b95ce8 in QMetaObject::activate (sender=0x9c77118, from_signal_index=4, to_signal_index=4, argv=0xbff25d5c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qobject.cpp:3066 #10 0xb6b962b2 in QMetaObject::activate (sender=0x9c77118, m=0xb45b6b44, local_signal_index=0, argv=0xbff25d5c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qobject.cpp:3143 #11 0xb44886ec in KateEditHistory::editDone (this=0x9c77118, _t1=0x9ff4e50) at /home/dh/kde/trunk/build/kdelibs/kate/kateedit.moc:78 #12 0xb447f2cd in KateEditHistory::doEdit (this=0x9c77118, edit=0x9ff4e50) at /home/dh/kde/trunk/kdelibs/kate/document/kateedit.h:126 #13 0xb446afab in KateDocument::editRemoveText (this=0x9c716e8, line=1, col=0, len=1, editSource=Kate::NoEditSource) at /home/dh/kde/trunk/kdelibs/kate/document/katedocument.cpp:1177 #14 0xb448b19e in KateEditInsertTextUndo::undo (this=0xa054eb8) at /home/dh/kde/trunk/kdelibs/kate/undo/kateundo.cpp:91 #15 0xb448a8f6 in KateUndoGroup::undo (this=0x9ff3930) at /home/dh/kde/trunk/kdelibs/kate/undo/kateundo.cpp:208 #16 0xb448c69a in KateUndoManager::undo (this=0x9c72b80) at /home/dh/kde/trunk/kdelibs/kate/undo/kateundomanager.cpp:204 #17 0xb4465b2e in KateDocument::undo (this=0x9c716e8) at /home/dh/kde/trunk/kdelibs/kate/document/katedocument.cpp:1510 #18 0xb4475261 in KateDocument::qt_metacall (this=0x9c716e8, _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbff2600c) at /home/dh/kde/trunk/build/kdelibs/kate/katedocument.moc:285 #19 0xb6b95ce8 in QMetaObject::activate (sender=0x9ef41d0, from_signal_index=5, to_signal_index=6, argv=0xbff2600c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qobject.cpp:3066 #20 0xb6b96030 in QMetaObject::activate (sender=0x9ef41d0, m=0xb76b1208, from_local_signal_index=1, to_local_signal_index=2, argv=0xbff2600c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qobject.cpp:3163 #21 0xb6fe3181 in QAction::triggered (this=0x9ef41d0, _t1=false) at .moc/release-shared/moc_qaction.cpp:236 #22 0xb6fe442f in QAction::activate (this=0x9ef41d0, event=QAction::Trigger) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qaction.cpp:1160 ---Type <return> to continue, or q <return> to quit--- #23 0xb6fe676b in QAction::event (this=0x9ef41d0, e=0xbff26404) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qaction.cpp:1079 #24 0xb791a87e in KAction::event (this=0x9ef41d0, event=0xbff26404) at /home/dh/kde/trunk/kdelibs/kdeui/actions/kaction.cpp:88 #25 0xb6fe8abc in QApplicationPrivate::notify_helper (this=0x9abdaf8, receiver=0x9ef41d0, e=0xbff26404) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:4084 #26 0xb6ff057e in QApplication::notify (this=0xbff27238, receiver=0x9ef41d0, e=0xbff26404) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3631 #27 0xb79f656d in KApplication::notify (this=0xbff27238, receiver=0x9ef41d0, event=0xbff26404) at /home/dh/kde/trunk/kdelibs/kdeui/kernel/kapplication.cpp:307 #28 0xb6b835cb in QCoreApplication::notifyInternal (this=0xbff27238, receiver=0x9ef41d0, event=0xbff26404) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:598 #29 0xb701d372 in QShortcutMap::dispatchEvent (this=0x9abdb98, e=0xbff2678c) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:213 #30 0xb701f05f in QShortcutMap::tryShortcutEvent (this=0x9abdb98, o=0x9ec5448, e=0xbff2678c) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qshortcutmap.cpp:369 #31 0xb6ff1936 in QApplication::notify (this=0xbff27238, receiver=0x9ec5448, e=0xbff2678c) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3673 #32 0xb79f656d in KApplication::notify (this=0xbff27238, receiver=0x9ec5448, event=0xbff2678c) at /home/dh/kde/trunk/kdelibs/kdeui/kernel/kapplication.cpp:307 #33 0xb6b835cb in QCoreApplication::notifyInternal (this=0xbff27238, receiver=0x9ec5448, event=0xbff2678c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:598 #34 0xb6fe9f9e in qt_sendSpontaneousEvent (receiver=0x9ec5448, event=0x6) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:216 #35 0xb7076930 in QKeyMapper::sendKeyEvent (keyWidget=0x9ec5448, grab=false, type=QEvent::KeyPress, code=90, modifiers={i = -1074632488}, text=@0xbff26904, autorepeat=<value optimized out>, count=<value optimized out>, nativeScanCode=29, nativeVirtualKey=122, nativeModifiers=4) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qkeymapper_x11.cpp:1675 #36 0xb70788e5 in QKeyMapperPrivate::translateKeyEvent (this=0x9ae4320, keyWidget=0x9ec5448, event=0xbff26f5c, grab=false) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qkeymapper_x11.cpp:1645 #37 0xb7051ce1 in QApplication::x11ProcessEvent (this=0xbff27238, event=0xbff26f5c) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication_x11.cpp:3436 #38 0xb707a1aa in x11EventSourceDispatch (s=0x9ac0890, callback=0, user_data=0x0) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:146 #39 0xb5f03718 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #40 0xb5f06dc3 in ?? () from /usr/lib/libglib-2.0.so.0 #41 0xb5f06f81 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #42 0xb6bab0e8 in QEventDispatcherGlib::processEvents (this=0x9aa5df0, flags={i = -1074630376}) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:323 #43 0xb7079955 in QGuiEventDispatcherGlib::processEvents (this=0x9aa5df0, flags={i = -1074630328}) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:202 #44 0xb6b81d6a in QEventLoop::processEvents (this=0xbff271b0, flags={i = -1074630264}) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #45 0xb6b81f2a in QEventLoop::exec (this=0xbff271b0, flags={i = -1074630216}) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qeventloop.cpp:196 #46 0xb6b84151 in QCoreApplication::exec () at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:880 #47 0xb6fe8937 in QApplication::exec () at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3553 #48 0xb7f05466 in kdemain (argc=1, argv=0xbff277b4) at /home/dh/kde/trunk/kdesdk/kate/app/katemain.cpp:257 ---Type <return> to continue, or q <return> to quit--- #49 0x080486d6 in main (argc=Cannot access memory at address 0x2e20 ) at /home/dh/kde/trunk/build/kdesdk/kate/app/kate_dummy.cpp:3
Just for the record: This bug also exists in KDE 4.2, i.e. it's NOT new in trunk.
Bug 180743 / bug 175494 could be related to this (similar assert)
updated backtrace: Application: KWrite (kwrite), signal: Aborted [Current thread is 0 (LWP 4073)] Thread 2 (Thread 0xb45d7b90 (LWP 4074)): #0 0xb80ce430 in __kernel_vsyscall () #1 0xb6ae30e5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0xb47456e1 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0xb47d4360) at /home/dh/kde/trunk/qt-copy/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304 #3 0xb4745711 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0xb47d4360) at /home/dh/kde/trunk/qt-copy/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438 #4 0xb6adf4ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #5 0xb693649e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 1 (Thread 0xb60d5750 (LWP 4073)): [KCrash Handler] #5 0xb80ce430 in __kernel_vsyscall () #6 0xb687d6d0 in raise () from /lib/tls/i686/cmov/libc.so.6 #7 0xb687f098 in abort () from /lib/tls/i686/cmov/libc.so.6 #8 0xb6b727ed in qt_message_output (msgType=QtFatalMsg, buf=0x88ff718 "ASSERT: \"smartGroup\" in file /home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp, line 307") at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:2250 #9 0xb6b728e1 in qt_message (msgType=QtFatalMsg, msg=0x6 <Address 0x6 out of bounds>, ap=0xbfce7fa4 "\233���`���3\001") at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:2296 #10 0xb6b72949 in qFatal (msg=0xb6cca3dc "ASSERT: \"%s\" in file %s, line %d") at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:2479 #11 0xb6b729d5 in qt_assert (assertion=0xb4a2a89b "smartGroup", file=0xb4a2a860 "/home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp", line=307) at /home/dh/kde/trunk/qt-copy/src/corelib/global/qglobal.cpp:2013 #12 0xb4930be7 in KateSmartManager::groupForLine (this=0x8581c68, line=1) at /home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp:307 #13 0xb493292e in KateSmartManager::slotTextChanged (this=0x8581c68, edit=0x88ff4c0) at /home/dh/kde/trunk/kdelibs/kate/smart/katesmartmanager.cpp:317 #14 0xb4932efd in KateSmartManager::qt_metacall (this=0x8581c68, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbfce816c) at /home/dh/kde/trunk/build/kdelibs/kate/katesmartmanager.moc:80 #15 0xb6c6fbe5 in QMetaObject::metacall (object=0xfe9, cl=QMetaObject::InvokeMetaMethod, idx=5, argv=0xbfce816c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qmetaobject.cpp:237 #16 0xb6c7de6f in QMetaObject::activate (sender=0x85819f0, m=0xb4a4a804, local_signal_index=0, argv=0xbfce816c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qobject.cpp:3272 #17 0xb48ed876 in KateEditHistory::editDone (this=0x85819f0, _t1=0x88ff4c0) at /home/dh/kde/trunk/build/kdelibs/kate/kateedit.moc:84 #18 0xb48edcc7 in KateEditHistory::doEdit (this=0x85819f0, edit=0x88ff4c0) at /home/dh/kde/trunk/kdelibs/kate/document/kateedit.cpp:162 #19 0xb48c9027 in KateDocument::editRemoveText (this=0x8503ff0, line=1, col=0, len=1, editSource=Kate::NoEditSource) at /home/dh/kde/trunk/kdelibs/kate/document/katedocument.cpp:1191 #20 0xb48f0816 in KateEditInsertTextUndo::undo (this=0x88f4540) at /home/dh/kde/trunk/kdelibs/kate/undo/kateundo.cpp:93 #21 0xb48eff82 in KateUndoGroup::undo (this=0x88fe088) at /home/dh/kde/trunk/kdelibs/kate/undo/kateundo.cpp:215 #22 0xb48f1c19 in KateUndoManager::undo (this=0x8503f90) at /home/dh/kde/trunk/kdelibs/kate/undo/kateundomanager.cpp:232 #23 0xb48c4c53 in KateDocument::undo (this=0x8503ff0) at /home/dh/kde/trunk/kdelibs/kate/document/katedocument.cpp:1532 #24 0xb48d96d6 in KateDocument::qt_metacall (this=0x8503ff0, _c=QMetaObject::InvokeMetaMethod, _id=40, _a=0xbfce83fc) at /home/dh/kde/trunk/build/kdelibs/kate/katedocument.moc:346 #25 0xb6c6fbe5 in QMetaObject::metacall (object=0xfe9, cl=QMetaObject::InvokeMetaMethod, idx=72, argv=0xbfce83fc) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qmetaobject.cpp:237 #26 0xb6c7de6f in QMetaObject::activate (sender=0x85bad48, m=0xb75bd1f8, local_signal_index=1, argv=0xbfce83fc) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qobject.cpp:3272 #27 0xb6e7d289 in QAction::triggered (this=0x85bad48, _t1=false) at .moc/release-shared/moc_qaction.cpp:263 #28 0xb6e7f20f in QAction::activate (this=0x85bad48, event=QAction::Trigger) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qaction.cpp:1251 #29 0xb6e8082b in QAction::event (this=0x85bad48, e=0xbfce8984) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qaction.cpp:1177 #30 0xb79cb5d4 in KAction::event (this=0x85bad48, event=0xbfce8984) at /home/dh/kde/trunk/kdelibs/kdeui/actions/kaction.cpp:131 #31 0xb6e82f1c in QApplicationPrivate::notify_helper (this=0x8420f20, receiver=0x85bad48, e=0xbfce8984) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:4298 #32 0xb6e8bee9 in QApplication::notify (this=0xbfce989c, receiver=0x85bad48, e=0xbfce8984) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3702 #33 0xb7ab351b in KApplication::notify (this=0xbfce989c, receiver=0x85bad48, event=0xbfce8984) at /home/dh/kde/trunk/kdelibs/kdeui/kernel/kapplication.cpp:302 #34 0xb6c6b13b in QCoreApplication::notifyInternal (this=0xbfce989c, receiver=0x85bad48, event=0xbfce8984) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:704 #35 0xb6ec0072 in QShortcutMap::dispatchEvent (this=0x8420fcc, e=0xbfce8e9c) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:215 #36 0xb6ec1d7f in QShortcutMap::tryShortcutEvent (this=0x8420fcc, o=0x85890d8, e=0xbfce8e9c) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qshortcutmap.cpp:364 #37 0xb6e8e0eb in QApplication::notify (this=0xbfce989c, receiver=0x85890d8, e=0xbfce8e9c) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3744 #38 0xb7ab351b in KApplication::notify (this=0xbfce989c, receiver=0x85890d8, event=0xbfce8e9c) at /home/dh/kde/trunk/kdelibs/kdeui/kernel/kapplication.cpp:302 #39 0xb6c6b13b in QCoreApplication::notifyInternal (this=0xbfce989c, receiver=0x85890d8, event=0xbfce8e9c) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:704 #40 0xb6e8435e in qt_sendSpontaneousEvent (receiver=0x85890d8, event=0x6) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:218 #41 0xb6f2b310 in QKeyMapper::sendKeyEvent (keyWidget=0x85890d8, grab=false, type=QEvent::KeyPress, code=90, modifiers={i = -1076981784}, text=@0xbfce9014, autorepeat=<value optimized out>, count=<value optimized out>, nativeScanCode=29, nativeVirtualKey=122, nativeModifiers=4) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qkeymapper_x11.cpp:1861 #42 0xb6f2d2d5 in QKeyMapperPrivate::translateKeyEvent (this=0x844ac68, keyWidget=0x85890d8, event=0xbfce95ac, grab=false) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qkeymapper_x11.cpp:1831 #43 0xb6f054d1 in QApplication::x11ProcessEvent (this=0xbfce989c, event=0xbfce95ac) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication_x11.cpp:3394 #44 0xb6f2fe62 in x11EventSourceDispatch (s=0x8424100, callback=0, user_data=0x0) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:146 #45 0xb6418b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #46 0xb641c0eb in ?? () from /usr/lib/libglib-2.0.so.0 #47 0xb641c268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #48 0xb6c93141 in QEventDispatcherGlib::processEvents (this=0x840afe8, flags={i = -1076979864}) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:412 #49 0xb6f2f635 in QGuiEventDispatcherGlib::processEvents (this=0x840afe8, flags={i = -1076979816}) at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:204 #50 0xb6c699aa in QEventLoop::processEvents (this=0xbfce9800, flags={i = -1076979752}) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #51 0xb6c69b72 in QEventLoop::exec (this=0xbfce9800, flags={i = -1076979704}) at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qeventloop.cpp:197 #52 0xb6c6c0b1 in QCoreApplication::exec () at /home/dh/kde/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:981 #53 0xb6e82fc7 in QApplication::exec () at /home/dh/kde/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3577 #54 0xb80c3d39 in kdemain (argc=1, argv=0xbfce9c84) at /home/dh/kde/trunk/kdebase/apps/kwrite/kwritemain.cpp:782 #55 0x080486d6 in main (argc=) at /home/dh/kde/trunk/build/kdebase/apps/kwrite/kwrite_dummy.cpp:3
Broken SmartGroup handling and hence duplicate report. *** This bug has been marked as a duplicate of bug 226409 ***