View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0011365 | Scribus | Undo/Redo | public | 2013-01-09 08:06 | 2016-12-29 23:43 |
Reporter | christoph_s | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | confirmed | Resolution | open | ||
Platform | x86_64 | OS | Linux | OS Version | OpenSUSE 12.1 |
Product Version | 1.5.0svn | ||||
Target Version | 1.5.5 | ||||
Summary | 0011365: Convert to Symbol is not recorded by Action History correctly which leads to Crash | ||||
Description | There 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 Information | See 0011365:0031856 to reproduce the crash | ||||
Tags | No tags attached. | ||||
Patch | No | ||||
related to | 0004959 | closed | Tsoots | add objects as patterns creates three internal undo actions |
related to | 0012753 | closed | jghali | 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) |
|
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 |
|
Since this leads to Crash I've changed the status and set target version to 1.5.0 |
|
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. |
|
Undo is turned off for this code.. nasty... started a fix in r19894 that someone else will need to work on... |
|
But it is recorded by action history in scribus 1.5.1svn |
|
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. |
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 | |
2015-10-28 14:18 | Kunda | Note Added: 0037041 | |
2015-10-29 04:21 | Kunda | Description Updated | |
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 |
|
Severity | block => major |