View Issue Details

IDProjectCategoryView StatusLast Update
0012358ScribusUndo/Redopublic2014-06-14 06:39
ReporterFirasH Assigned Tojghali  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Platformx86_64OSopenSUSEOS Version13.1
Product Version1.5.0svn 
Fixed in Version1.5.0svn 
Summary0012358: Undo/Redo crashes Scribus restoring a Group + Item
DescriptionUndo/Redo crashes Scribus restoring a Group + Item.
Steps To Reproduce0) Create a new document
1) Insert 2 items
2) Insert another item
3) Group the items added in Step 1
4) Move the Group
5) Select the Group and the item added in Step 2
6) Delete the selected items
7) Undo 3 times

Scribus crashes due to Signal 11
Additional InformationScribus 1.5.0 SVN (19191)

Screencast: https://www.dropbox.com/s/34ucct9pv4bbxg0/12358.mp4

Backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000030 in ?? ()
(gdb) bt
#0 0x0000000000000030 in ?? ()
0000001 0x00000000010d91e3 in PropertiesPalette_Shape::enableEditShape (this=0x26a27b0)
    at /home/.../Scribus/scribus/ui/propertiespalette_shape.cpp:210
0000002 0x00000000010d92fe in PropertiesPalette_Shape::handleSelectionChanged (this=0x26a27b0)
    at /home/.../Scribus/scribus/ui/propertiespalette_shape.cpp:232
0000003 0x00000000007bc083 in PropertiesPalette_Shape::qt_static_metacall (_o=0x26a27b0,
    _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffff9f80)
    at /home/.../Scribus/build/scribus/ui/moc_propertiespalette_shape.cpp:128
0000004 0x00007ffff768a681 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000005 0x0000000000793f5d in ScribusDoc::docChanged (this=0x33ec4d0)
    at /home/.../Scribus/build/scribus/moc_scribusdoc.cpp:1057
0000006 0x0000000000d62fb7 in ScribusDoc::itemSelection_UnGroupObjects (this=0x33ec4d0,
    customSelection=0x7fffffffa200)
    at /home/.../Scribus/scribus/scribusdoc.cpp:15546
0000007 0x0000000000d0c40c in ScribusDoc::restoreGrouping (this=0x33ec4d0, state=0x3448ce0,
    isUndo=true) at /home/.../Scribus/scribus/scribusdoc.cpp:2362
0000008 0x0000000000d01aab in ScribusDoc::restore (this=0x33ec4d0, state=0x3448ce0, isUndo=true)
    at /home/.../Scribus/scribus/scribusdoc.cpp:1742
0000009 0x0000000000de9ff0 in UndoState::undo (this=0x3448ce0)
    at /home/.../Scribus/scribus/undostate.cpp:73
0000010 0x0000000000dda97e in TransactionState::undo (this=0x3227db0)
    at /home/.../Scribus/scribus/undomanager.cpp:808
0000011 0x0000000000de912b in UndoStack::undo (this=0x3629a80, steps=1, objectId=-1)
    at /home/.../Scribus/scribus/undostack.cpp:80
0000012 0x0000000000dd934d in UndoManager::undo (this=0x1edf630, steps=1)
    at /home/.../Scribus/scribus/undomanager.cpp:553
0000013 0x0000000000799222 in UndoManager::qt_static_metacall (_o=0x1edf630,
    _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7fffffffc200)
    at /home/.../Scribus/build/scribus/moc_undomanager.cpp:143
0000014 0x00007ffff768a681 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000015 0x000000000078dfa2 in ScrAction::triggeredData (this=0x258a6f0, _t1=1)
    at /home/.../Scribus/build/scribus/moc_scraction.cpp:245
0000016 0x0000000000c70734 in ScrAction::triggeredToTriggeredData (this=0x258a6f0)
    at /home/.../Scribus/scribus/scraction.cpp:100
0000017 0x000000000078dad3 in ScrAction::qt_static_metacall (_o=0x258a6f0,
    _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0x7fffffffc540)
    at /home/.../Scribus/build/scribus/moc_scraction.cpp:117
0000018 0x00007ffff768a681 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000019 0x00007ffff6c825d2 in QAction::triggered(bool) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000020 0x00007ffff6c84407 in QAction::activate(QAction::ActionEvent) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000021 0x00007ffff6d8d8b5 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000022 0x00007ffff6d8db74 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000023 0x00007ffff6e504ba in QToolButton::mouseReleaseEvent(QMouseEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000024 0x00007ffff6cc5a87 in QWidget::event(QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000025 0x00007ffff6e51350 in QToolButton::event(QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000026 0x00007ffff6c8d764 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000027 0x00007ffff6c90bb6 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000028 0x00007ffff7658dd4 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000029 0x00007ffff6c8fcca in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000030 0x00007ffff6ce5cb7 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000031 0x00007ffff6ce8808 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000032 0x00007ffff6c8d764 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000033 0x00007ffff6c90de6 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000034 0x00007ffff7658dd4 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000035 0x00007ffff650d457 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
0000036 0x00007ffff650de95 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
0000037 0x00007ffff64f3148 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
0000038 0x00007fffe5490630 in ?? ()
   from /home/.../Qt/5.3/gcc_64/plugins/platforms/libqxcb.so
0000039 0x00007fffecde1316 in g_main_dispatch (context=0x7fffe0001740)
    at gmain.c:3066
0000040 g_main_context_dispatch (context=context@entry=0x7fffe0001740)
    at gmain.c:3642
0000041 0x00007fffecde1668 in g_main_context_iterate (context=context@entry=0x7fffe0001740,
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
0000042 0x00007fffecde170c in g_main_context_iteration (context=0x7fffe0001740, may_block=1)
    at gmain.c:3774
0000043 0x00007ffff76b3444 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000044 0x00007ffff7656feb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000045 0x00007ffff765beb5 in QCoreApplication::exec() ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000046 0x000000000123c908 in mainApp (argc=1, argv=0x7fffffffdd38)
    at /home/.../Scribus/scribus/main_nix.cpp:86
0000047 0x000000000123c898 in main (argc=1, argv=0x7fffffffdd38)
    at /home/.../Scribus/scribus/main_nix.cpp:54
TagsNo tags attached.
Patch

Activities

FirasH

2014-06-11 22:09

developer   ~0032085

Scribus 1.5.0 SVN (19208): the Undo issue is fixed, but Redo can cause a crash when trying to re-delete Group + item. (randomly reproducible)

Screencast: https://www.dropbox.com/s/3x7jcwvb0nznpab/12358%282%29.mp4


Program received signal SIGSEGV, Segmentation fault.
0x00000000008c4bc9 in QString::isEmpty (this=0x2556258)
    at /home/.../Qt/5.3/gcc_64/include/QtCore/qstring.h:794
794 { return d->size == 0; }
(gdb) bt
#0 0x00000000008c4bc9 in QString::isEmpty (this=0x2556258)
    at /home/.../Qt/5.3/gcc_64/include/QtCore/qstring.h:794
0000001 0x0000000000cbd7df in ScPage::restorePageItemDeletion (this=0x2f70020, state=
    0x314b530, isUndo=false) at /home/.../Scribus/scribus/scpage.cpp:370
0000002 0x0000000000cbb705 in ScPage::restore (this=0x2f70020, state=0x314b530,
    isUndo=false) at /home/.../Scribus/scribus/scpage.cpp:214
0000003 0x0000000000e73aa8 in UndoState::redo (this=0x314b530)
    at /home/.../Scribus/scribus/undostate.cpp:79
0000004 0x0000000000e644ef in TransactionState::redo (this=0x2f5bb40)
    at /home/.../Scribus/scribus/undomanager.cpp:829
0000005 0x0000000000e72e01 in UndoStack::redo (this=0x315d590, steps=1, objectId=-1)
    at /home/.../Scribus/scribus/undostack.cpp:121
0000006 0x0000000000e62e6d in UndoManager::redo (this=0x1c5d420, steps=1)
    at /home/.../Scribus/scribus/undomanager.cpp:567
0000007 0x000000000081bbdf in UndoManager::qt_static_metacall (_o=0x1c5d420,
    _c=QMetaObject::InvokeMetaMethod, _id=13, _a=0x7fffffffc380)
    at /home/.../Scribus/build/scribus/moc_undomanager.cpp:144
0000008 0x00007ffff768a681 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000009 0x000000000081b840 in UndoPalette::redo (this=0x295f9d0, _t1=1)
    at /home/.../Scribus/build/scribus/moc_undogui.cpp:528
0000010 0x0000000000e5e889 in UndoPalette::redoClicked (this=0x295f9d0)
    at /home/.../Scribus/scribus/undogui.cpp:432
0000011 0x000000000081b3d3 in UndoPalette::qt_static_metacall (_o=0x295f9d0,
    _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffffffc580)
    at /home/.../Scribus/build/scribus/moc_undogui.cpp:435
0000012 0x00007ffff768a681 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000013 0x00007ffff701ee22 in QAbstractButton::clicked(bool) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000014 0x00007ffff6d8d053 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000015 0x00007ffff6d8d96a in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000016 0x00007ffff6d8db74 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000017 0x00007ffff6cc5a87 in QWidget::event(QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000018 0x00007ffff6c8d764 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000019 0x00007ffff6c90bb6 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000020 0x00007ffff7658dd4 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000021 0x00007ffff6c8fcca in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000022 0x00007ffff6ce5cb7 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000023 0x00007ffff6ce8808 in ?? ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000024 0x00007ffff6c8d764 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000025 0x00007ffff6c90de6 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Widgets.so.5
0000026 0x00007ffff7658dd4 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000027 0x00007ffff650d457 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
0000028 0x00007ffff650de95 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
0000029 0x00007ffff64f3148 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Gui.so.5
0000030 0x00007fffe3360630 in ?? ()
   from /home/.../Qt/5.3/gcc_64/plugins/platforms/libqxcb.so
0000031 0x00007fffeb7d8316 in g_main_context_dispatch ()
   from /usr/lib64/libglib-2.0.so.0
0000032 0x00007fffeb7d8668 in ?? ()
   from /usr/lib64/libglib-2.0.so.0
0000033 0x00007fffeb7d870c in g_main_context_iteration ()
   from /usr/lib64/libglib-2.0.so.0
0000034 0x00007ffff76b3444 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000035 0x00007ffff7656feb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000036 0x00007ffff765beb5 in QCoreApplication::exec() ()
   from /home/.../Qt/5.3/gcc_64/lib/libQt5Core.so.5
0000037 0x00000000012d7f60 in mainApp (argc=1, argv=0x7fffffffdd38)
    at /home/.../Scribus/scribus/main_nix.cpp:86
0000038 0x00000000012d7ef0 in main (argc=1, argv=0x7fffffffdd38)
    at /home/.../Scribus/scribus/main_nix.cpp:54

FirasH

2014-06-12 21:19

developer   ~0032113

Is it needed to close this report and open a new one to divide each case?

Issue History

Date Modified Username Field Change
2014-06-09 13:55 FirasH New Issue
2014-06-11 20:42 jghali Status new => resolved
2014-06-11 20:42 jghali Fixed in Version => 1.5.0svn
2014-06-11 20:42 jghali Resolution open => fixed
2014-06-11 20:42 jghali Assigned To => jghali
2014-06-11 22:09 FirasH Note Added: 0032085
2014-06-12 21:19 FirasH Note Added: 0032113
2014-06-14 06:39 cbradney Status resolved => closed