Bug 301421 - crash when inserting text shapes
Summary: crash when inserting text shapes
Status: RESOLVED FIXED
Alias: None
Product: calligrawords
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Calligra Words Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-08 06:10 UTC by Markus Kohls
Modified: 2012-06-13 09:51 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Kohls 2012-06-08 06:10:26 UTC
Application: calligrawords (2.5 Alpha)
KDE Platform Version: 4.8.4 (4.8.4)
Qt Version: 4.8.2
Operating System: Linux 3.2.0-25-generic i686
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:

Blank Document -> Insert a Text Shape (Create new Frameset) -> Insert a Second Text Shape (Create New Frameset) so that it's on top of the other Text Shape -> Crash

The crash can be reproduced every time.

-- Backtrace:
Application: Calligra Words (calligrawords), signal: Segmentation fault
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb7713740 (LWP 16678))]

Thread 2 (Thread 0xb4b96b40 (LWP 16679)):
#0  0x081e0dcd in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x025d00cb in do_gettime (sec=0xb4b95fa0, frac=0xb4b95fa8) at tools/qelapsedtimer_unix.cpp:123
#2  0x025d014a in qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x026c0f53 in QTimerInfoList::updateCurrentTime (this=0xb4202074) at kernel/qeventdispatcher_unix.cpp:343
#4  0x026c12b1 in QTimerInfoList::timerWait (this=0xb4202074, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#5  0x026be361 in timerSourcePrepareHelper (src=0xb4202040, timeout=0xb4b960cc) at kernel/qeventdispatcher_glib.cpp:136
#6  0x026be4c6 in timerSourcePrepare (source=0xb4202040, timeout=0xb4b960cc) at kernel/qeventdispatcher_glib.cpp:169
#7  0x0811d872 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x0811dfaf in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x0811e201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x026beea6 in QEventDispatcherGlib::processEvents (this=0xb4200468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0x02685549 in QEventLoop::processEvents (this=0xb4b96238, flags=...) at kernel/qeventloop.cpp:149
#12 0x026856b7 in QEventLoop::exec (this=0xb4b96238, flags=...) at kernel/qeventloop.cpp:204
#13 0x02566195 in QThread::exec (this=0x92a22d0) at thread/qthread.cpp:501
#14 0x026635b6 in QInotifyFileSystemWatcherEngine::run (this=0x92a22d0) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x0256894d in QThreadPrivate::start (arg=0x92a22d0) at thread/qthread_unix.cpp:307
#16 0x006bbd4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x001faace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb7713740 (LWP 16678)):
[KCrash Handler]
#7  0x008a0aee in KoTextLayoutRootArea::isDirty (this=0xa9463a0) at /build/buildd/project-neon-calligra-2+git20120607+r72942/libs/textlayout/KoTextLayoutRootArea.cpp:112
#8  0x008b1b64 in KoTextShapeData::isDirty (this=0xa0185a8) at /build/buildd/project-neon-calligra-2+git20120607+r72942/libs/textlayout/KoTextShapeData.cpp:157
#9  0x03b5fcf8 in TextShape::paintComponent (this=0xa8f4730, painter=..., converter=..., paintContext=...) at /build/buildd/project-neon-calligra-2+git20120607+r72942/plugins/textshape/TextShape.cpp:109
#10 0x08af2b96 in KoShapeContainer::paint (this=0xa8f4730, painter=..., converter=..., paintcontext=...) at /build/buildd/project-neon-calligra-2+git20120607+r72942/libs/flake/KoShapeContainer.cpp:154
#11 0x08af7c9c in KoShapeManager::paintShape (this=0x98ae290, shape=0xa8f4730, painter=..., converter=..., paintContext=...) at /build/buildd/project-neon-calligra-2+git20120607+r72942/libs/flake/KoShapeManager.cpp:373
#12 0x08af64e9 in KoShapeManagerPaintingStrategy::paint (this=0x98ae6b8, shape=0xa8f4730, painter=..., converter=..., paintContext=...) at /build/buildd/project-neon-calligra-2+git20120607+r72942/libs/flake/KoShapeManagerPaintingStrategy.cpp:52
#13 0x08af7a6b in KoShapeManager::paint (this=0x98ae290, painter=..., converter=..., forPrint=false) at /build/buildd/project-neon-calligra-2+git20120607+r72942/libs/flake/KoShapeManager.cpp:337
#14 0x0298f3e2 in KWCanvasBase::paint (this=0x98ac374, painter=..., paintRect=...) at /build/buildd/project-neon-calligra-2+git20120607+r72942/words/part/KWCanvasBase.cpp:320
#15 0x029946e1 in KWCanvas::paintEvent (this=0x98ac360, ev=0xbfa92238) at /build/buildd/project-neon-calligra-2+git20120607+r72942/words/part/KWCanvas.cpp:176
#16 0x010b7862 in QWidget::event (this=0x98ac360, event=0xbfa92238) at kernel/qwidget.cpp:8517
#17 0x02994042 in KWCanvas::event (this=0x98ac360, e=0xbfa92238) at /build/buildd/project-neon-calligra-2+git20120607+r72942/words/part/KWCanvas.cpp:118
#18 0x0105910c in QApplicationPrivate::notify_helper (this=0x8ff9eb8, receiver=0x98ac360, e=0xbfa92238) at kernel/qapplication.cpp:4551
#19 0x01058e47 in QApplication::notify (this=0xbfa93b60, receiver=0x98ac360, e=0xbfa92238) at kernel/qapplication.cpp:4516
#20 0x04224876 in KApplication::notify (this=0xbfa93b60, receiver=0x98ac360, event=0xbfa92238) at /build/buildd/project-neon-kdelibs-2+git20120607+r92760/kdeui/kernel/kapplication.cpp:311
#21 0x02687dbe in QCoreApplication::notifyInternal (this=0xbfa93b60, receiver=0x98ac360, event=0xbfa92238) at kernel/qcoreapplication.cpp:915
#22 0x0105b93f in QCoreApplication::sendSpontaneousEvent (receiver=0x98ac360, event=0xbfa92238) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#23 0x010b0143 in QWidgetPrivate::drawWidget (this=0x98ac3c0, pdev=0x91ecd70, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5594
#24 0x010b0eb5 in QWidgetPrivate::paintSiblingsRecursive (this=0x98b1750, pdev=0x91ecd70, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5803
#25 0x010b0520 in QWidgetPrivate::drawWidget (this=0x98b1750, pdev=0x91ecd70, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5647
#26 0x010b0eb5 in QWidgetPrivate::paintSiblingsRecursive (this=0x98aeb50, pdev=0x91ecd70, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5803
#27 0x010b0d84 in QWidgetPrivate::paintSiblingsRecursive (this=0x98aeb50, pdev=0x91ecd70, siblings=..., index=2, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5790
#28 0x010b0d84 in QWidgetPrivate::paintSiblingsRecursive (this=0x98aeb50, pdev=0x91ecd70, siblings=..., index=3, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5790
#29 0x010b0520 in QWidgetPrivate::drawWidget (this=0x98aeb50, pdev=0x91ecd70, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5647
#30 0x010b0eb5 in QWidgetPrivate::paintSiblingsRecursive (this=0x9750978, pdev=0x91ecd70, siblings=..., index=2, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5803
#31 0x010b0520 in QWidgetPrivate::drawWidget (this=0x9750978, pdev=0x91ecd70, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5647
#32 0x010b0eb5 in QWidgetPrivate::paintSiblingsRecursive (this=0x94f7ba8, pdev=0x91ecd70, siblings=..., index=6, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5803
#33 0x010b0520 in QWidgetPrivate::drawWidget (this=0x94f7ba8, pdev=0x91ecd70, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5647
#34 0x010b0eb5 in QWidgetPrivate::paintSiblingsRecursive (this=0x91a7318, pdev=0x91ecd70, siblings=..., index=25, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5803
#35 0x010b0d84 in QWidgetPrivate::paintSiblingsRecursive (this=0x91a7318, pdev=0x91ecd70, siblings=..., index=27, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5790
#36 0x010b0d84 in QWidgetPrivate::paintSiblingsRecursive (this=0x91a7318, pdev=0x91ecd70, siblings=..., index=33, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5790
#37 0x010b0520 in QWidgetPrivate::drawWidget (this=0x91a7318, pdev=0x91ecd70, rgn=..., offset=..., flags=5, sharedPainter=0x0, backingStore=0x91d6b60) at kernel/qwidget.cpp:5647
#38 0x012c93b1 in QWidgetBackingStore::sync (this=0x91d6b60) at painting/qbackingstore.cpp:1373
#39 0x010a7710 in QWidgetPrivate::syncBackingStore (this=0x91a7318) at kernel/qwidget.cpp:1892
#40 0x010b7d39 in QWidget::event (this=0x9109980, event=0x9fda538) at kernel/qwidget.cpp:8664
#41 0x0155478c in QMainWindow::event (this=0x9109980, event=0x9fda538) at widgets/qmainwindow.cpp:1478
#42 0x043069e4 in KMainWindow::event (this=0x9109980, ev=0x9fda538) at /build/buildd/project-neon-kdelibs-2+git20120607+r92760/kdeui/widgets/kmainwindow.cpp:1084
#43 0x0434f463 in KXmlGuiWindow::event (this=0x9109980, ev=0x9fda538) at /build/buildd/project-neon-kdelibs-2+git20120607+r92760/kdeui/xmlgui/kxmlguiwindow.cpp:126
#44 0x0105910c in QApplicationPrivate::notify_helper (this=0x8ff9eb8, receiver=0x9109980, e=0x9fda538) at kernel/qapplication.cpp:4551
#45 0x01058e47 in QApplication::notify (this=0xbfa93b60, receiver=0x9109980, e=0x9fda538) at kernel/qapplication.cpp:4516
#46 0x04224876 in KApplication::notify (this=0xbfa93b60, receiver=0x9109980, event=0x9fda538) at /build/buildd/project-neon-kdelibs-2+git20120607+r92760/kdeui/kernel/kapplication.cpp:311
#47 0x02687dbe in QCoreApplication::notifyInternal (this=0xbfa93b60, receiver=0x9109980, event=0x9fda538) at kernel/qcoreapplication.cpp:915
#48 0x0268b525 in QCoreApplication::sendEvent (receiver=0x9109980, event=0x9fda538) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#49 0x02688cba in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8fa6370) at kernel/qcoreapplication.cpp:1539
#50 0x02688977 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432
#51 0x026bf556 in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#52 0x026be6fa in postEventSourceDispatch (s=0x8ff9e50) at kernel/qeventdispatcher_glib.cpp:279
#53 0x0811dd86 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#54 0x0811e125 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#55 0x0811e201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#56 0x026bee86 in QEventDispatcherGlib::processEvents (this=0x8fa6ef0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#57 0x01122768 in QGuiEventDispatcherGlib::processEvents (this=0x8fa6ef0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#58 0x02685549 in QEventLoop::processEvents (this=0xbfa93b0c, flags=...) at kernel/qeventloop.cpp:149
#59 0x026856b7 in QEventLoop::exec (this=0xbfa93b0c, flags=...) at kernel/qeventloop.cpp:204
#60 0x0268843a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#61 0x0105667e in QApplication::exec () at kernel/qapplication.cpp:3812
#62 0x008f9d39 in kdemain (argc=1, argv=0xbfa93c64) at /build/buildd/project-neon-calligra-2+git20120607+r72942/words/part/main.cpp:43
#63 0x08048609 in main (argc=1, argv=0xbfa93c64) at /build/buildd/project-neon-calligra-2+git20120607+r72942/obj-i686-linux-gnu/words/part/calligrawords_dummy.cpp:3

Reported using DrKonqi
Comment 1 Camilla Boemann 2012-06-10 12:26:08 UTC
I can confirm. it crashes when inserting a textshape (even the first one, but i'm using a template so there is already a textshape we insert on top of i guees)

Thanks. Will look in to it now
Comment 2 Camilla Boemann 2012-06-10 12:38:30 UTC
It's 87dd80da75f5b2425ff8f04954a87650cb7be790 that causes it.

I'll figure out why and fix
Comment 3 Camilla Boemann 2012-06-10 13:36:17 UTC
Git commit b2362d0d53653ccf1bc585c773d530f7a8121f2c by C. Boemann.
Committed on 10/06/2012 at 15:30.
Pushed by boemann into branch 'master'.

Prevent crash after 87dd80da75f5b2425ff8f04954a87650cb7be790
If inserting a textshape, the qtextdocument is now modified which made a rootarea to be created
We need to explicitly set the root area to 0 whenever setting the document. Even if it's the same
document.

M  +4    -0    libs/textlayout/KoTextShapeData.cpp

http://commits.kde.org/calligra/b2362d0d53653ccf1bc585c773d530f7a8121f2c
Comment 4 Yue Liu 2012-06-13 09:51:35 UTC
Git commit 2bae60646ca3298262184db43e12946fb5ab35c6 by Yue Liu, on behalf of C. Boemann.
Committed on 10/06/2012 at 15:30.
Pushed by liu into branch 'connection-interaction-yue'.

Prevent crash after 87dd80da75f5b2425ff8f04954a87650cb7be790
If inserting a textshape, the qtextdocument is now modified which made a rootarea to be created
We need to explicitly set the root area to 0 whenever setting the document. Even if it's the same
document.

M  +4    -0    libs/textlayout/KoTextShapeData.cpp

http://commits.kde.org/calligra/2bae60646ca3298262184db43e12946fb5ab35c6