View Issue Details

IDProjectCategoryView StatusLast Update
0012249ScribusShape Drawingpublic2014-09-01 19:52
ReporterFirasH Assigned Tojghali  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Platformx86_64OSopenSUSEOS Version13.1
Product Version1.4.4.svn 
Target Version1.5.0Fixed in Version1.4.5.svn 
Summary0012249: Deleting Bezier Curve nodes crashes/freezes Scribus in determined condition
DescriptionDeleting Bezier Curve nodes may crash or freeze Scribus following the described Steps.
Steps To Reproduce0) Create a new document
1) Insert a Bezier Curve with 3 nodes
2) Double-click on the Bezier Curve so that "Nodes" pops up
3) Select the tool to delete nodes (first line, third row)

If you want Scribus to crash follow these steps:
4) Delete the node in the middle of the Bezier Curve (not first or last)
Now the delete nodes tool is not selected
5) Select the first node of the Bezier Curve
6) Select the tool to delete nodes (first line, third row)
(this can be reproduced following a different way of deleting nodes, but this worked always for me)

[Scribus 1.5.0: deleting the middle node (step 4) deletes completely the Bezier Curve leaving only a small rectangle (selection) and the entry "PolylineX" in Outline window.]

Scribus crashes due to Signal 11


If you want Scribus to freeze follow these steps (do not work always):
4) Delete the last node of the Bezier Curve
5) Try to delete one of the remaining 2 nodes

[Scribus 1.5.0: deleting the last node (step 4) deletes completely the Bezier Curve leaving only a small rectangle (selection) and the entry "PolylineX" in Outline window.]

If Scribus doesn't freeze its very likely that the Bezier Curve is invisible on Canvas and only a very small red rectangle (selection) is visible. In Outline window the entry "PolylineX" is still present.
Additional InformationIssue present on:
Scribus 1.4.4 SVN (19074)
(partially) Scribus 1.5.0 SVN (19073)
TagsNo tags attached.
Patch

Relationships

related to 0012347 closedjghali Deleting Bezier Curve nodes leads to wrong result 
related to 0012552 closedjghali Deleting a node of a Shape with 3 nodes crashes Scribus 
related to 0012608 closed Delete Bezier node --> Crash 

Activities

FirasH

2014-06-05 12:13

developer   ~0032025

Program received signal SIGSEGV, Segmentation fault.
0x000000000087c9af in FPointArray::point (this=0x7fffffffb4c0, i=4294967295, x=0x7fffffffb4e8, y=0x7fffffffb4e0)
    at /home/.../1.4Source/Scribus/scribus/fpointarray.cpp:142
142 *x = p->xp;
(gdb) bt
#0 0x000000000087c9af in FPointArray::point (this=0x7fffffffb4c0, i=4294967295, x=0x7fffffffb4e8, y=0x7fffffffb4e0)
    at /home/.../1.4Source/Scribus/scribus/fpointarray.cpp:142
0000001 0x00000000007a7373 in CanvasMode_NodeEdit::drawControls (this=0x2cef670, p=0x7fffffffb7d0)
    at /home/.../1.4Source/Scribus/scribus/canvasmode_nodeedit.cpp:142
0000002 0x000000000074cc09 in Canvas::paintEvent (this=0x2fc3590, p=0x7fffffffbc00)
    at /home/.../1.4Source/Scribus/scribus/canvas.cpp:906
0000003 0x00007ffff702bbe4 in QWidget::event(QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000004 0x00007ffff6fdc8ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000005 0x00007ffff6fe2e70 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000006 0x00007ffff650c0ad in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
0000007 0x00007ffff70262f1 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000008 0x00007ffff7026d20 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000009 0x00007ffff7025eac in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000010 0x00007ffff7026d20 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000011 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000012 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000013 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000014 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000015 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000016 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000017 0x00007ffff7026b8f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000018 0x00007ffff7025eac in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000019 0x00007ffff7026d20 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000020 0x00007ffff7025eac in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000021 0x00007ffff7026d20 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000022 0x00007ffff7025eac in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000023 0x00007ffff7026d20 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000024 0x00007ffff7025eac in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000025 0x00007ffff7026d20 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000026 0x00007ffff7025eac in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
   from /usr/lib64/libQtGui.so.4
0000027 0x00007ffff71e476e in ?? ()
   from /usr/lib64/libQtGui.so.4
0000028 0x00007ffff701b790 in QWidgetPrivate::syncBackingStore() ()
   from /usr/lib64/libQtGui.so.4
0000029 0x00007ffff702b762 in QWidget::event(QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000030 0x00007ffff73e1643 in QMainWindow::event(QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000031 0x00007ffff6fdc8ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000032 0x00007ffff6fe2e70 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib64/libQtGui.so.4
0000033 0x00007ffff650c0ad in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib64/libQtCore.so.4
0000034 0x00007ffff650f0ff in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /usr/lib64/libQtCore.so.4
0000035 0x00007ffff6539493 in ?? () from /usr/lib64/libQtCore.so.4
0000036 0x00007ffff1b67316 in g_main_dispatch (context=0x1433770) at gmain.c:3066
0000037 g_main_context_dispatch (context=context@entry=0x1433770) at gmain.c:3642
0000038 0x00007ffff1b67668 in g_main_context_iterate (context=context@entry=0x1433770, block=block@entry=1,
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
0000039 0x00007ffff1b6770c in g_main_context_iteration (context=0x1433770, may_block=1) at gmain.c:3774
0000040 0x00007ffff6538d55 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
0000041 0x00007ffff7079936 in ?? () from /usr/lib64/libQtGui.so.4
0000042 0x00007ffff650ad0f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
0000043 0x00007ffff650b005 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
0000044 0x00007ffff651013b in QCoreApplication::exec() ()
   from /usr/lib64/libQtCore.so.4
0000045 0x0000000000e89eff in mainApp (argc=1, argv=0x7fffffffdd28)
    at /home/.../1.4Source/Scribus/scribus/main_nix.cpp:84
0000046 0x0000000000e89e8c in main (argc=1, argv=0x7fffffffdd28)
    at /home/.../1.4Source/Scribus/scribus/main_nix.cpp:52

Kunda

2014-06-17 04:56

updater   ~0032208

Partially reproduced on r19244 (OSX 10.8.5 Homebrew build w/ Homebrew packaged Qt5.3)
Not reproducible each time (for both scenarios) on 1.5svn (it's an elusive bug)

FirasH

2014-07-25 23:36

developer   ~0033008

The crash is fixed with 1.4.5.svn (19369).
The freeze is still reproducible.

FirasH

2014-09-01 19:33

developer   ~0033438

Seems fixed as I cannot reproduce the freeze with 1.4.5.svn (19469).

Kunda

2014-09-01 19:49

updater   ~0033439

Cannot reproduce either on 1.5svn r19469 (OSX 10.8.5)

Issue History

Date Modified Username Field Change
2014-04-21 15:32 FirasH New Issue
2014-06-05 12:13 FirasH Note Added: 0032025
2014-06-17 04:56 Kunda Note Added: 0032208
2014-06-20 16:04 ale Status new => confirmed
2014-07-06 23:20 Kunda Severity block => crash
2014-07-06 23:20 Kunda Target Version => 1.5.0
2014-07-24 00:23 FirasH Relationship added related to 0012552
2014-07-25 23:36 FirasH Note Added: 0033008
2014-08-15 15:11 FirasH Relationship added related to 0012608
2014-08-15 16:11 FirasH Relationship added related to 0012347
2014-09-01 19:33 FirasH Note Added: 0033438
2014-09-01 19:33 FirasH Status confirmed => resolved
2014-09-01 19:33 FirasH Fixed in Version => 1.4.5.svn
2014-09-01 19:33 FirasH Resolution open => fixed
2014-09-01 19:33 FirasH Assigned To => jghali
2014-09-01 19:49 Kunda Note Added: 0033439
2014-09-01 19:52 FirasH Status resolved => closed