View Issue Details

IDProjectCategoryView StatusLast Update
0011365ScribusUndo/Redopublic2016-12-29 23:43
Reporterchristoph_s Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status confirmedResolutionopen 
Platformx86_64OSLinuxOS VersionOpenSUSE 12.1
Product Version1.5.0svn 
Target Version1.5.5Fixed in Version 
Summary0011365: Convert to Symbol is not recorded by Action History correctly which leads to Crash
DescriptionThere are 2 issues here:
1) Follow the instructions in 0011365:0031856 to reproduce the crash
2) Convert to Symbol is not recorded by Action History (while other Convert actions are)
Additional InformationSee 0011365:0031856 to reproduce the crash
TagsNo tags attached.
PatchNo

Relationships

related to 0004959 closedTsoots add objects as patterns creates three internal undo actions 
related to 0012753 closedjghali Convert Symbol to Symbol crashes Scribus 
related to 0013286 confirmed [PATCH] Undo/Redo used with Symbol conversion might cause crash on document closing 
child of 0012500 acknowledged Metabug: Undo/Redo (1.5.x.svn) 

Activities

FirasH

2014-05-15 14:52

developer   ~0031856

Same behavior here with Scribus 1.5.0 SVN (19120).

This issue leads to a crash reproducible as follows:

0) Create a new document
1) Insert a Frame/Polygon
2) Select the item added in step 1, right-click > Convert to > Symbol
3) Undo once
4) Redo once
5) Close the document Ctrl+W (and Discard)

Scribus crashes due to Signal 11


Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
0000001 0x0000000000cf5700 in ScribusDoc::~ScribusDoc (this=0x338de00, __in_chrg=<optimized out>)
    at /home/.../Scribus/scribus/scribusdoc.cpp:714
0000002 0x0000000000cf6b7c in ScribusDoc::~ScribusDoc (this=0x338de00, __in_chrg=<optimized out>)
    at /home/.../Scribus/scribus/scribusdoc.cpp:750
0000003 0x0000000000ca9cb6 in ScribusMainWindow::DoFileClose (this=0x19bd170)
    at /home/.../Scribus/scribus/scribus.cpp:4769
0000004 0x0000000000db1baa in ScribusWin::closeEvent (this=0x251eff0, ce=0x7fffffffc260)
    at /home/.../Scribus/scribus/scribuswin.cpp:115
0000005 0x00007ffff6d24546 in QWidget::event(QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000006 0x00007ffff6e45a7b in QMainWindow::event(QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000007 0x00007ffff6cec0f4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000008 0x00007ffff6cef6ae in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000009 0x00007ffff7674734 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000010 0x00007ffff6d1f53a in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000011 0x00007ffff6e5fb83 in QMdiSubWindow::closeEvent(QCloseEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000012 0x00007ffff6d24546 in QWidget::event(QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000013 0x00007ffff6e638b3 in QMdiSubWindow::event(QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000014 0x00007ffff6cec0f4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000015 0x00007ffff6cef6ae in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000016 0x00007ffff7674734 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000017 0x00007ffff6d1f53a in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000018 0x00007ffff6d2747f in ?? ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000019 0x00007ffff769d6b1 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000020 0x00007ffff6ce0e92 in QAction::triggered(bool) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000021 0x00007ffff6ce2cc7 in QAction::activate(QAction::ActionEvent) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000022 0x00007ffff6ce2fbf in QAction::event(QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000023 0x00007ffff6cec0f4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000024 0x00007ffff6cef6ae in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000025 0x00007ffff7674734 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000026 0x00007ffff662b131 in QShortcutMap::dispatchEvent(QKeyEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Gui.so.5
0000027 0x00007ffff662c6fb in QShortcutMap::tryShortcutEvent(QObject*, QKeyEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Gui.so.5
0000028 0x00007ffff6cef653 in QApplication::notify(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Widgets.so.5
0000029 0x00007ffff7674734 in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000030 0x00007ffff6600238 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Gui.so.5
0000031 0x00007ffff6609485 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Gui.so.5
0000032 0x00007ffff65f0ba8 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Gui.so.5
0000033 0x00007fffe581f1b0 in ?? ()
   from /home/.../Qt/5.2.1/gcc_64/plugins/platforms/libqxcb.so
0000034 0x00007fffed055316 in g_main_dispatch (context=0x7fffe0001740)
    at gmain.c:3066
0000035 g_main_context_dispatch (context=context@entry=0x7fffe0001740) at gmain.c:3642
0000036 0x00007fffed055668 in g_main_context_iterate (context=context@entry=0x7fffe0001740, block=block@entry=1,
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
0000037 0x00007fffed05570c in g_main_context_iteration (context=0x7fffe0001740, may_block=1)
    at gmain.c:3774
0000038 0x00007ffff76c5374 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000039 0x00007ffff76734ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000040 0x00007ffff767753e in QCoreApplication::exec() ()
   from /home/.../Qt/5.2.1/gcc_64/lib/libQt5Core.so.5
0000041 0x0000000001235118 in mainApp (argc=1, argv=0x7fffffffdd38)
    at /home/.../Scribus/scribus/main_nix.cpp:86
0000042 0x00000000012350a8 in main (argc=1, argv=0x7fffffffdd38)
    at /home/.../Scribus/scribus/main_nix.cpp:54

Kunda

2014-08-20 07:52

manager   ~0033296

Since this leads to Crash I've changed the status and set target version to 1.5.0

william

2014-10-15 16:23

updater   ~0034015

I think that the subject line is correct -- the problem is that "Convert to Symbol" is not recorded by the action history.  When you follow the steps, the first Undo says "Undo: Create RegularPolygon1" instead of something about undoing the convert to symbol.  When you click on the undo at that point, it probably messes up the Scribus internals, and it is only a matter of time until Scribus crashes. When you close the document (as opposed to closing Scribus), Scribus tries to free all of the internal data structures that it used to hold the document. Scribus crashes when it tries to free the data structures that were scrambled by the undo.

cbradney

2015-03-02 22:20

administrator   ~0034632

Undo is turned off for this code.. nasty... started a fix in r19894 that someone else will need to work on...

watfa albadi

2015-10-26 05:31

reporter   ~0036936

But it is recorded by action history in scribus 1.5.1svn

Kunda

2015-10-28 14:18

manager   ~0037041

watfa, please compare how "Convert to Symbol" registers in "Action History" to say "Convert to Polygon". The difference is that the former skips over the 'Page 1 - Convert Item' step.

Issue History

Date Modified Username Field Change
2013-01-09 08:06 christoph_s New Issue
2014-05-15 14:52 FirasH Note Added: 0031856
2014-07-03 19:32 Kunda Target Version 1.5.0 => 1.5.1
2014-08-20 07:51 Kunda Relationship added child of 0012500
2014-08-20 07:52 Kunda Note Added: 0033296
2014-08-20 07:52 Kunda Severity minor => crash
2014-08-20 07:52 Kunda Status new => confirmed
2014-08-20 07:52 Kunda Target Version 1.5.1 => 1.5.0
2014-09-11 02:34 Kunda Severity crash => block
2014-10-13 22:11 Kunda Relationship added related to 0012753
2014-10-15 16:23 william Note Added: 0034015
2014-10-30 13:28 Kunda Sticky Issue No => Yes
2015-03-02 22:20 cbradney Note Added: 0034632
2015-05-19 20:56 cbradney Target Version 1.5.0 => 1.5.1
2015-08-10 16:20 FirasH Relationship added related to 0013286
2015-10-26 05:31 watfa albadi Note Added: 0036936
2015-10-26 19:38 JLuc Relationship added related to 0004959
2015-10-28 14:14 Kunda Patch => No
2015-10-28 14:14 Kunda Summary Convert to Symbol is not recorded by Action History => Convert to Symbol is not recorded by Action History + Crash
2015-10-28 14:14 Kunda Additional Information Updated View Revisions
2015-10-28 14:18 Kunda Note Added: 0037041
2015-10-29 04:21 Kunda Description Updated View Revisions
2015-10-30 11:43 Kunda Summary Convert to Symbol is not recorded by Action History + Crash => Convert to Symbol is not recorded by Action History correctly which leads to Crash
2015-11-10 15:38 Kunda Sticky Issue Yes => No
2016-01-23 17:17 cbradney Target Version 1.5.1 => 1.5.3
2016-12-08 21:30 Kunda Target Version 1.5.3 => 1.5.5
2016-12-29 23:43 plinnell Severity block => major