View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0014100 | Scribus | Story Editor / Text Frames | public | 2016-05-26 17:05 | 2016-12-08 22:04 |
Reporter | Kunda | Assigned To | |||
Priority | normal | Severity | crash | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | MacOSX | OS | Yosemite | OS Version | 10.10.5 |
Product Version | 1.5.3.svn | ||||
Target Version | 1.5.4 | ||||
Summary | 0014100: text frame with frame break that is subsequently linked will in certain condition cause a crash | ||||
Description | edge case because text linking is not used the way it's been intended backtrace is attached | ||||
Steps To Reproduce | 1) create textframe 2) enter some text 3) Insert > Spaces & Breaks > Frame Break 4) create separate new text frame, 5) link text frame 1 with text frame 2 6) in text frame 2, type a single letter Result: Viewport jumps to the top left of the cavas 7) type more letters Result: viewport goes back to previous state 8) delete letters back to 1 letter Result: Viewport jumps to the top left of the canvas 9) repeat steps 6-8 a few times Result: Crash | ||||
Tags | No tags attached. | ||||
Patch | No | ||||
|
bt.txt (9,109 bytes)
Process 25166 stopped * thread #1: tid = 0x54c79, 0x000000000000004f, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4f) frame #0: 0x000000000000004f error: memory read failed for 0x0 (lldb) bt * thread #1: tid = 0x54c79, 0x000000000000004f, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4f) * frame #0: 0x000000000000004f frame #1: 0x0000000100109343 Scribus`Style::validate() const + 51 frame #2: 0x00000001004552ae Scribus`CharStyle::backColor() const + 14 frame #3: 0x000000010080f5bf Scribus`LineBox::drawBackGround(TextLayoutPainter*) const + 197 frame #4: 0x000000010080f1d2 Scribus`LineBox::render(TextLayoutPainter*, PageItem*) const + 108 frame #5: 0x000000010080e912 Scribus`GroupBox::render(TextLayoutPainter*, PageItem*) const + 164 frame #6: 0x000000010080e912 Scribus`GroupBox::render(TextLayoutPainter*, PageItem*) const + 164 frame #7: 0x000000010081f42e Scribus`TextLayout::render(TextLayoutPainter*, PageItem*) + 50 frame #8: 0x00000001001f9a33 Scribus`PageItem_TextFrame::DrawObj_Item(ScPainter*, QRectF) + 6551 frame #9: 0x00000001001930bf Scribus`PageItem::DrawObj(ScPainter*, QRectF) + 371 frame #10: 0x00000001000a3b62 Scribus`Canvas::DrawPageItems(ScPainter*, ScLayer&, QRect, bool) + 1386 frame #11: 0x00000001000a101a Scribus`Canvas::drawContents(QPainter*, int, int, int, int) + 2302 frame #12: 0x00000001000a060d Scribus`Canvas::fillBuffer(QPaintDevice*, QPoint, QRect) + 167 frame #13: 0x00000001000a13e6 Scribus`Canvas::paintEvent(QPaintEvent*) + 482 frame #14: 0x00000001023b4291 QtWidgets`QWidget::event(QEvent*) + 2129 frame #15: 0x0000000102374b76 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294 frame #16: 0x00000001023774c0 QtWidgets`QApplication::notify(QObject*, QEvent*) + 5648 frame #17: 0x000000010381c3f4 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164 frame #18: 0x00000001023add84 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 3412 frame #19: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #20: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #21: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #22: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #23: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #24: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #25: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #26: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #27: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #28: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #29: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #30: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #31: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #32: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #33: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #34: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #35: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #36: 0x00000001023ae558 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1192 frame #37: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #38: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #39: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #40: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #41: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #42: 0x00000001023ae3e6 QtWidgets`QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 822 frame #43: 0x00000001023ae023 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 4083 frame #44: 0x0000000102382511 QtWidgets`QWidgetBackingStore::doSync() + 5281 frame #45: 0x00000001023b44bd QtWidgets`QWidget::event(QEvent*) + 2685 frame #46: 0x00000001024bd07f QtWidgets`QMainWindow::event(QEvent*) + 1743 frame #47: 0x0000000102374b76 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294 frame #48: 0x00000001023774c0 QtWidgets`QApplication::notify(QObject*, QEvent*) + 5648 frame #49: 0x000000010381c3f4 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164 frame #50: 0x000000010381d014 QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 596 frame #51: 0x0000000108770bae libqcocoa.dylib`QCocoaEventDispatcherPrivate::processPostedEvents() + 190 frame #52: 0x0000000108771481 libqcocoa.dylib`QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 33 frame #53: 0x00007fff8f876a01 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 frame #54: 0x00007fff8f868b8d CoreFoundation`__CFRunLoopDoSources0 + 269 frame #55: 0x00007fff8f8681bf CoreFoundation`__CFRunLoopRun + 927 frame #56: 0x00007fff8f867bd8 CoreFoundation`CFRunLoopRunSpecific + 296 frame #57: 0x00007fff8404056f HIToolbox`RunCurrentEventLoopInMode + 235 frame #58: 0x00007fff840402ea HIToolbox`ReceiveNextEventCommon + 431 frame #59: 0x00007fff8404012b HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71 frame #60: 0x00007fff848c08ab AppKit`_DPSNextEvent + 978 frame #61: 0x00007fff848bfe58 AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346 frame #62: 0x00007fff848b5af3 AppKit`-[NSApplication run] + 594 frame #63: 0x000000010877037f libqcocoa.dylib`QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2191 frame #64: 0x00000001038187a1 QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 401 frame #65: 0x000000010381ca65 QtCore`QCoreApplication::exec() + 341 frame #66: 0x00000001007fc89c Scribus`mainApp(int, char**) + 105 frame #67: 0x00007fff8c8115c9 libdyld.dylib`start + 1 frame #68: 0x00007fff8c8115c9 libdyld.dylib`start + 1 |
|
Crash was caused when I tried to incorrectly reproduce 0002297 |
|
Peter, please see if you can reproduce this crash. Thanks! |
|
|
|
|
|
|
|
|
|
|
|
Tested Ubuntu 16.04; r21360 I can reproduce this (00.gif) ... and even some error! 1) Write 10 characters the first frame, and insert "Frame Break" after 5 characters. - Second frame not updated, until the first frame edited. (01.gif) 2) Click the Second frame, first character. Press Backspace. - Cursor It is the wrong place for the first frame (02.gif) 3) Backspace and Del button inversely works the first frame after last character - Backspace: Deleted the Frame Break - Delete: Deleted the first character the second frame (and not Frame Break) - 7×del before 1×Backspace (03.gif) 4) Insert some character the first frame and 2×"Frame Break" - Second Frame Break arrow outside the second TextFrame (04.gif) |
|
(gdb) bt #0 0x00007ffff2c18418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 0000001 0x00007ffff2c1a01a in __GI_abort () at abort.c:89 0000002 0x00007ffff2c10bd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x5555568dd23b "pos <= length()", file=file@entry=0x5555568dd1b8 "/build/scribus-trunk-Lkj06u/scribus-trunk-1.5.2svn~r21360~20160528~ppa54~ubuntu16.04.1/scribus/text/storytext.cpp", line=line@entry=929, function=function@entry=0x5555568ddaa0 "const ParagraphStyle& StoryText::paragraphStyle(int) const") at assert.c:92 0000003 0x00007ffff2c10c82 in __GI___assert_fail (assertion=0x5555568dd23b "pos <= length()", file=0x5555568dd1b8 "/build/scribus-trunk-Lkj06u/scribus-trunk-1.5.2svn~r21360~20160528~ppa54~ubuntu16.04.1/scribus/text/storytext.cpp", line=929, function=0x5555568ddaa0 "const ParagraphStyle& StoryText::paragraphStyle(int) const") at assert.c:101 0000004 0x00005555565d4797 in StoryText::paragraphStyle(int) const () 0000005 0x00005555565de350 in TextLayout::renderBackground(TextLayoutPainter*) () 0000006 0x0000555555cfff56 in PageItem_TextFrame::DrawObj_Item(ScPainter*, QRectF) () 0000007 0x0000555555c62e4b in PageItem::DrawObj(ScPainter*, QRectF) () 0000008 0x0000555555af9997 in Canvas::DrawPageItems(ScPainter*, ScLayer&, QRect, bool) () 0000009 0x0000555555af6adb in Canvas::drawContents(QPainter*, int, int, int, int) () 0000010 0x0000555555af5b44 in Canvas::fillBuffer(QPaintDevice*, QPoint, QRect) () 0000011 0x0000555555af5c99 in Canvas::paintEvent(QPaintEvent*) () 0000012 0x00007ffff4562f88 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000013 0x00007ffff452005c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000014 0x00007ffff4525516 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000015 0x00007ffff3ad362b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000016 0x00007ffff455ba79 in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000017 0x00007ffff455c0c1 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000018 0x00007ffff452d856 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000019 0x00007ffff452da8c in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000020 0x00007ffff454bc1f in QWidgetPrivate::syncBackingStore() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000021 0x00007ffff4562d88 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000022 0x00007ffff4678d8b in QMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000023 0x00007ffff452005c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000024 0x00007ffff4525516 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 0000025 0x00007ffff3ad362b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000026 0x00007ffff3ad5a26 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000027 0x00007ffff3b29673 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000028 0x00007fffee00e127 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000029 0x00007fffee00e380 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000030 0x00007fffee00e42c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 0000031 0x00007ffff3b29a7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000032 0x00007ffff3ad0dea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000033 0x00007ffff3ad8e8c in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 0000034 0x000055555659b396 in mainApp(int, char**) () 0000035 0x000055555659b2ff in main () |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-05-26 17:05 | Kunda | New Issue | |
2016-05-26 17:05 | Kunda | File Added: bt.txt | |
2016-05-26 17:05 | Kunda | Issue generated from: 0002297 | |
2016-05-26 17:05 | Kunda | Relationship added | related to 0002297 |
2016-05-26 17:07 | Kunda | Note Added: 0041462 | |
2016-05-27 09:18 | jghali | Relationship added | has duplicate 0014102 |
2016-05-29 01:14 | Kunda | Note Added: 0041502 | |
2016-05-30 06:41 | PeterBenedek | File Added: 01.gif | |
2016-05-30 06:48 | PeterBenedek | File Added: 02.gif | |
2016-05-30 07:21 | PeterBenedek | File Added: 03.gif | |
2016-05-30 07:31 | PeterBenedek | File Added: 04.gif | |
2016-05-30 07:33 | PeterBenedek | File Added: 00_crash.gif | |
2016-05-30 07:33 | PeterBenedek | Note Added: 0041564 | |
2016-05-30 07:34 | PeterBenedek | Note Edited: 0041564 | |
2016-05-30 07:40 | PeterBenedek | Note Edited: 0041564 | |
2016-05-30 08:00 | PeterBenedek | Note Added: 0041565 | |
2016-12-08 22:04 | Kunda | Target Version | 1.5.3 => 1.5.4 |