Bug 309846 - Kate crashes while undo/redo of .patch files
Summary: Kate crashes while undo/redo of .patch files
Status: RESOLVED DUPLICATE of bug 294241
Alias: None
Product: kate
Classification: Applications
Component: folding (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: VHI crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords:
: 311790 315373 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-11-10 09:30 UTC by David Smith
Modified: 2013-03-23 15:30 UTC (History)
4 users (show)

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


Attachments
New crash information added by DrKonqi (14.64 KB, text/plain)
2012-11-27 02:03 UTC, Thiago Jung Bauermann
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Smith 2012-11-10 09:30:03 UTC
Application: kate (3.8.4)
KDE Platform Version: 4.8.4 (4.8.4)
Qt Version: 4.8.2
Operating System: Linux 3.2.0-4-686-pae i686
Distribution: Debian GNU/Linux testing (wheezy)

-- Information about the crash:
While editing patch files, adding/removing little bits of text from inside "blocks" of code. Then doing multiple undo / redos consecutively causes Kate to crash.

KDE bug tracker suggests this as a duplicate of other bugs supposedly fixed in 4.8.2, but it's still present in 4.8.4.

The crash can be reproduced every time.

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

Thread 2 (Thread 0xb1e49b70 (LWP 25349)):
#0  0xb775a424 in __kernel_vsyscall ()
#1  0xb5e9c20a in __pthread_cond_wait (cond=0xb2145650, mutex=0xb2145638) at pthread_cond_wait.c:153
#2  0xb76a932d in __pthread_cond_wait (cond=0xb2145650, mutex=0xb2145638) at forward.c:139
#3  0xb203219d in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#4  0xb20321cf in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#5  0xb5e97c39 in start_thread (arg=0xb1e49b70) at pthread_create.c:304
#6  0xb769c23e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb4d58930 (LWP 25345)):
[KCrash Handler]
#7  hasMatch (this=0xa381a48) at ../../part/syntax/katecodefolding.h:228
#8  matchingNode (this=0xa381a48) at ../../part/syntax/katecodefolding.h:231
#9  getStartMatching (endNode=0xa1d0ef0, this=0xa381a48) at ../../part/syntax/katecodefolding.cpp:155
#10 KateCodeFoldingTree::getLineInfo (this=0x9ed1798, info=0xbfebbeac, line=31) at ../../part/syntax/katecodefolding.cpp:1020
#11 0xb2247566 in lineInfo (line=31, info=0xbfebbeac, this=<optimized out>) at ../../part/document/katebuffer.h:187
#12 KateDocument::lineInfo (this=0x9ed1290, info=0xbfebbeac, line=31) at ../../part/document/katedocument.cpp:4041
#13 0xb22fff15 in KateIconBorder::paintBorder (this=this@entry=0xa071350, y=y@entry=0, height=619) at ../../part/view/kateviewhelpers.cpp:1197
#14 0xb2301a8a in KateIconBorder::paintEvent (this=0xa071350, e=0xbfebc5cc) at ../../part/view/kateviewhelpers.cpp:955
#15 0xb6c8dba4 in QWidget::event (this=0xa071350, event=0xbfebc5cc) at kernel/qwidget.cpp:8517
#16 0xb6c3447c in QApplicationPrivate::notify_helper (this=0x9c9c1d8, receiver=0xa071350, e=0xbfebc5cc) at kernel/qapplication.cpp:4556
#17 0xb6c38f24 in QApplication::notify (this=0x9c9c1d8, receiver=0xa071350, e=0xbfebc5cc) at kernel/qapplication.cpp:4417
#18 0xb65386b1 in KApplication::notify (this=0xbfebf3fc, receiver=0xa071350, event=0xbfebc5cc) at ../../kdeui/kernel/kapplication.cpp:311
#19 0xb614c55e in QCoreApplication::notifyInternal (this=0xbfebf3fc, receiver=0xa071350, event=0xbfebc5cc) at kernel/qcoreapplication.cpp:915
#20 0xb6c89423 in sendSpontaneousEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#21 QWidgetPrivate::drawWidget (this=0xa0713e8, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5594
#22 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0xa0797a8, pdev=pdev@entry=0xa1e0fb0, siblings=..., index=<optimized out>, index@entry=1, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=backingStore@entry=0x9f06798) at kernel/qwidget.cpp:5803
#23 0xb6c89da2 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0xa0797a8, pdev=pdev@entry=0xa1e0fb0, siblings=..., index=1, index@entry=2, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=backingStore@entry=0x9f06798) at kernel/qwidget.cpp:5790
#24 0xb6c89da2 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0xa0797a8, pdev=pdev@entry=0xa1e0fb0, siblings=..., index=2, index@entry=3, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=backingStore@entry=0x9f06798) at kernel/qwidget.cpp:5790
#25 0xb6c89da2 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0xa0797a8, pdev=pdev@entry=0xa1e0fb0, siblings=..., index=3, index@entry=4, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=backingStore@entry=0x9f06798) at kernel/qwidget.cpp:5790
#26 0xb6c89da2 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0xa0797a8, pdev=pdev@entry=0xa1e0fb0, siblings=..., index=4, index@entry=5, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=backingStore@entry=0x9f06798) at kernel/qwidget.cpp:5790
#27 0xb6c89da2 in QWidgetPrivate::paintSiblingsRecursive (this=0xa0797a8, pdev=0xa1e0fb0, siblings=..., index=5, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5790
#28 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0xa0797a8, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#29 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0xa0676a8, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#30 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0xa0676a8, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#31 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9f0f558, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#32 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9f0f558, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#33 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x9f0f2d8, pdev=pdev@entry=0xa1e0fb0, siblings=..., index=<optimized out>, index@entry=1, rgn=..., offset=..., flags=flags@entry=4, sharedPainter=sharedPainter@entry=0x0, backingStore=backingStore@entry=0x9f06798) at kernel/qwidget.cpp:5803
#34 0xb6c89da2 in QWidgetPrivate::paintSiblingsRecursive (this=0x9f0f2d8, pdev=0xa1e0fb0, siblings=..., index=1, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5790
#35 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9f0f2d8, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#36 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9f0ae50, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#37 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9f0ae50, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#38 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9f00a30, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#39 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9f00a30, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#40 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9f002e0, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#41 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9f002e0, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#42 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9eff410, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#43 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9eff410, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#44 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9efed20, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#45 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9efed20, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#46 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9efe198, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#47 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9efe198, pdev=0xa1e0fb0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#48 0xb6c89f5a in QWidgetPrivate::paintSiblingsRecursive (this=0x9efb9b8, pdev=0xa1e0fb0, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5803
#49 0xb6c88f5d in QWidgetPrivate::drawWidget (this=0x9efb9b8, pdev=0xa1e0fb0, rgn=..., offset=..., flags=5, sharedPainter=0x0, backingStore=0x9f06798) at kernel/qwidget.cpp:5647
#50 0xb6e7fb96 in QWidgetBackingStore::sync (this=0x9f06798) at painting/qbackingstore.cpp:1373
#51 0xb6c7cf2b in QWidgetPrivate::syncBackingStore (this=0x9efb9b8) at kernel/qwidget.cpp:1892
#52 0xb6c8e21f in QWidget::event (this=0x9efa5a8, event=0xa3515c8) at kernel/qwidget.cpp:8664
#53 0xb70bbf1c in QMainWindow::event (this=0x9efa5a8, event=0xa3515c8) at widgets/qmainwindow.cpp:1478
#54 0xb660dca4 in KMainWindow::event (this=0x9efa5a8, ev=0xa3515c8) at ../../kdeui/widgets/kmainwindow.cpp:1084
#55 0xb6654ca2 in KXmlGuiWindow::event (this=0x9efa5a8, ev=0xa3515c8) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#56 0xb6c3447c in QApplicationPrivate::notify_helper (this=0x9c9c1d8, receiver=0x9efa5a8, e=0xa3515c8) at kernel/qapplication.cpp:4556
#57 0xb6c38f24 in QApplication::notify (this=0x9c9c1d8, receiver=0x9efa5a8, e=0xa3515c8) at kernel/qapplication.cpp:4417
#58 0xb65386b1 in KApplication::notify (this=0xbfebf3fc, receiver=0x9efa5a8, event=0xa3515c8) at ../../kdeui/kernel/kapplication.cpp:311
#59 0xb614c55e in QCoreApplication::notifyInternal (this=0xbfebf3fc, receiver=0x9efa5a8, event=0xa3515c8) at kernel/qcoreapplication.cpp:915
#60 0xb615076d in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#61 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9c72370) at kernel/qcoreapplication.cpp:1539
#62 0xb61509ec in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432
#63 0xb617e6c4 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#64 postEventSourceDispatch (s=0x9c9a7a0) at kernel/qeventdispatcher_glib.cpp:279
#65 0xb5dc36d3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#66 0xb5dc3a70 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#67 0xb5dc3b51 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#68 0xb617e841 in QEventDispatcherGlib::processEvents (this=0x9c72ed8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#69 0xb6ce71fa in QGuiEventDispatcherGlib::processEvents (this=0x9c72ed8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#70 0xb614b02c in QEventLoop::processEvents (this=this@entry=0xbfebf1d8, flags=...) at kernel/qeventloop.cpp:149
#71 0xb614b321 in QEventLoop::exec (this=0xbfebf1d8, flags=...) at kernel/qeventloop.cpp:204
#72 0xb6150a9a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#73 0xb6c322f4 in QApplication::exec () at kernel/qapplication.cpp:3817
#74 0xb7752655 in kdemain (argc=3, argv=0xbfebf514) at ../../../kate/app/katemain.cpp:377
#75 0x080485fb in main (argc=3, argv=0xbfebf514) at kate_dummy.cpp:3

This bug may be a duplicate of or related to bug 297261.

Possible duplicates by query: bug 308139, bug 306369, bug 297317, bug 297261, bug 294241.

Reported using DrKonqi
Comment 1 Thiago Jung Bauermann 2012-11-27 02:03:07 UTC
Created attachment 75497 [details]
New crash information added by DrKonqi

kate (3.9.3) on KDE Platform 4.9.3 using Qt 4.8.2

- What I was doing when the application crashed:

I was reindenting code in a python source code file when the crash ocurred.

The top 6 or 7 frames of my crash dump are exactly the same as the one from the original bug reporter.

This is the second time in the day that Kate crashed. Since I'm not sure what I was doing the first time and I didn't have debug info to file a report, I can't be sure of it but I think the first crash was for the same reason. Therefore, this bug happens frequently.

I don't know yet if I can reproduce the problem. I'll try and update this report.

This is on KDE 4.9.3, installed on Kubuntu 12.04 LTS.

- Custom settings of the application:

The file I was editing is in a remote computer and Kate opened it using the sftp protocol. I don't know if that is relevant or not, but is probably a bit unusual.

-- Backtrace (Reduced):
#7  hasMatch (this=0x94fe680) at ../../part/syntax/katecodefolding.h:228
#8  matchingNode (this=0x94fe680) at ../../part/syntax/katecodefolding.h:231
#9  getStartMatching (endNode=0x94d2bb0, this=0x94fe680) at ../../part/syntax/katecodefolding.cpp:155
#10 KateCodeFoldingTree::getLineInfo (this=0x8d70980, info=0xbf8f9810, line=18) at ../../part/syntax/katecodefolding.cpp:995
#11 0xb44232f6 in lineInfo (line=18, info=0xbf8f9810, this=<optimized out>) at ../../part/document/katebuffer.h:187
Comment 2 Thiago Jung Bauermann 2012-11-27 02:35:55 UTC
I was able to reproduce the bug by editing patch files too, but it took a while for Kate to crash, and I saved the file every now and then too.

I tried reproducing a second time now but I've done lots of editing, undoing, redoing and saving, but can't get Kate to crash again. So there probably a specific kind of edit that triggers the bug.
Comment 3 Dominik Haumann 2012-12-05 09:32:33 UTC
*** Bug 311180 has been marked as a duplicate of this bug. ***
Comment 4 Dominik Haumann 2013-02-20 11:06:11 UTC
Thiago, can you please test again with KDE 4.10?
Further, can you attach a test case with a step-by-step instruction?
Comment 5 Dominik Haumann 2013-02-20 11:10:34 UTC
*** Bug 311790 has been marked as a duplicate of this bug. ***
Comment 6 Dominik Haumann 2013-02-20 11:11:29 UTC
*** Bug 315373 has been marked as a duplicate of this bug. ***
Comment 7 Thiago Jung Bauermann 2013-02-23 02:23:36 UTC
Ok, I will test it as soon as I get the chance. I'm using KDevelop instead of kate for my current programming project, does it matter whether I test on Kate or KDevelop? If it does, I'll try a bit on that one later.
Comment 8 Thiago Jung Bauermann 2013-03-10 13:01:31 UTC
I haven't been doing much python programming lately so I can't be certain that this bug was fixed.

However, I did some python programming on KDevelop a few days ago, with code folding enabled and it didn't crash. I also played around a little bit trying to trigger the crash but I couldn't. Since I had Kate crash on me two times in a day when I reported the bug, I think this is fixed now.

I'm assuming that KDevelop would be equally affected by this bug. I haven't been using Kate for programming...

IMHO this bug can be closed. If it turns out that the crashes still happen, it can be reopened.
Comment 9 Dominik Haumann 2013-03-11 07:05:29 UTC
Seems to work now, so close as discussed for now.
Comment 10 Dominik Haumann 2013-03-23 15:30:04 UTC

*** This bug has been marked as a duplicate of bug 294241 ***