View Issue Details

IDProjectCategoryView StatusLast Update
0004358ScribusUndo/Redopublic2006-10-30 12:27
Reporterkili Assigned ToTsoots  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Platformx86OSOpenBSDOS VersionOpenBSD-4.0
Product Version1.3.3.4 
Fixed in Version1.3.3.5cvs 
Summary0004358: Delete/Undo-Strangeness crossing two documents leads to segfault
DescriptionDeleting an object in document A, undoing this in document B, and then closing document a causes a segmentation fault.
Steps To ReproduceNote: on systems other than OpenBSD you may need some malloc-debugging toolkits to reproduce this (see also 0004357).

- Start scribus. Create and save two empty documents, a and b. Exit scribus.
- Start scribus. Load documents a and b (using Open Recent) in "normal" mode, not maximized (i.e., clock "Restore Down" after loading them).
- Insert a text frame into document b, delete it, select document a, click on the Undo button (well, the fact that the button is active already is a bug).
- Close document b, discarding all changes.
=> segfault.
Additional InformationSorry, no patch this time. However here's the traceback:

(gdb) run
Starting program: /usr/local/bin/scribus

Program received signal SIGSEGV, Segmentation fault.
[Switching to process 15667, thread 0x7efd0000]
0x1c169b5a in DocumentChecker::checkDocument(ScribusDoc*) (currDoc=0x7d0ed000) at pageitem.h:882
882 bool printEnabled() const { return m_PrintEnabled; }
(gdb) where
#0 0x1c169b5a in DocumentChecker::checkDocument(ScribusDoc*) (currDoc=0x7d0ed000) at pageitem.h:882
0000001 0x1c5948e9 in ScribusMainWindow::newActWin(QWidget*) (this=0x81ed1000, w=0x8114a700) at scribus.cpp:2093
0000002 0x1c57e792 in ScribusMainWindow::qt_invoke(int, QUObject*) (this=0x81ed1000, _id=81, _o=0xcf7c34e0) at qucom_p.h:312
0000003 0x0880c3ae in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/local/lib/libqt-mt.so.30.0
0000004 0x08b19302 in QWorkspace::windowActivated(QWidget*) () from /usr/local/lib/libqt-mt.so.30.0
0000005 0x089af220 in QWorkspace::activateWindow(QWidget*, bool) () from /usr/local/lib/libqt-mt.so.30.0
0000006 0x089b27b2 in QWorkspace::eventFilter(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000007 0x0880a0b8 in QObject::activate_filters(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000008 0x0880a006 in QObject::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000009 0x0883bffe in QWidget::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000010 0x089b708b in QWorkspaceChild::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000011 0x087b8241 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000012 0x087b76eb in QApplication::notify(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000013 0x0883b402 in QWidget::hide() () from /usr/local/lib/libqt-mt.so.30.0
0000014 0x089b7deb in QWorkspaceChild::eventFilter(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000015 0x0880a0b8 in QObject::activate_filters(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000016 0x0880a006 in QObject::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000017 0x0883bffe in QWidget::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000018 0x088eb40f in QMainWindow::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000019 0x087b8241 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000020 0x087b76eb in QApplication::notify(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000021 0x0883b402 in QWidget::hide() () from /usr/local/lib/libqt-mt.so.30.0
0000022 0x088eaea4 in QMainWindow::hide() () from /usr/local/lib/libqt-mt.so.30.0
0000023 0x0883bb34 in QWidget::close(bool) () from /usr/local/lib/libqt-mt.so.30.0
0000024 0x08af7d1c in QWidget::qt_invoke(int, QUObject*) () from /usr/local/lib/libqt-mt.so.30.0
0000025 0x08b05d0b in QMainWindow::qt_invoke(int, QUObject*) () from /usr/local/lib/libqt-mt.so.30.0
0000026 0x1c48c54c in ScribusWin::qt_invoke(int, QUObject*) (this=0x8855d600, _id=33, _o=0xcf7c3f40) at scribuswin.moc:94
0000027 0x0880c3ae in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/local/lib/libqt-mt.so.30.0
0000028 0x0880c1dd in QObject::activate_signal(int) () from /usr/local/lib/libqt-mt.so.30.0
0000029 0x08b0bcfc in QTitleBar::doClose() () from /usr/local/lib/libqt-mt.so.30.0
0000030 0x0891d3c3 in QTitleBar::mouseReleaseEvent(QMouseEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000031 0x0883c06e in QWidget::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000032 0x0891e387 in QTitleBar::event(QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000033 0x087b8241 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000034 0x087b77d6 in QApplication::notify(QObject*, QEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000035 0x08757317 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/local/lib/libqt-mt.so.30.0
0000036 0x0875505c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/local/lib/libqt-mt.so.30.0
0000037 0x0876a92d in QEventLoop::processEvents(unsigned) () from /usr/local/lib/libqt-mt.so.30.0
0000038 0x087c804b in QEventLoop::enterLoop() () from /usr/local/lib/libqt-mt.so.30.0
0000039 0x087c7f10 in QEventLoop::exec() () from /usr/local/lib/libqt-mt.so.30.0
0000040 0x087b843c in QApplication::exec() () from /usr/local/lib/libqt-mt.so.30.0
0000041 0x1c5d005b in mainApp(int, char**) (argc=1, argv=0xcf7c48b0) at main_nix.cpp:74
0000042 0x1c5cffdf in main (argc=1, argv=0xcf7c48b0) at main_nix.cpp:50
TagsNo tags attached.
Patch

Relationships

child of 0005745 closed Metabug: Undo/Redo issues 

Activities

Tsoots

2006-10-04 23:24

reporter   ~0012790

"well, the fact that the button is active already is a bug"

And it's the only reproducible bit in this bug report on my system. No crash here and the bt looks definitely a bit weird.

kili

2006-10-04 23:45

reporter   ~0012791

"No crash here and the bt looks definitely a bit weird."

That's why i mentioned OpenBSD or the use of some memory checking library.

The backtrace, or rather the relevant arguments therein (this, method arguments etc.) all looked fine, which is really weird.

I'll re-run that same session with some more torturing malloc-settings next weekend. Perhaps i find the real cause for the segfault. o.k.?

jghali

2006-10-04 23:46

administrator   ~0012792

Crash fully reproduceable on Windows too.

Tsoots

2006-10-04 23:47

reporter   ~0012793

"I'll re-run that same session with some more torturing malloc-settings next weekend. Perhaps i find the real cause for the segfault. o.k.?"

That would be great cause I doubt my fixes to the undo frame work fixing only the doc switching issue will do anything to the bigger memory issues behind all this. Thanks.

mhanski

2006-10-05 09:39

developer   ~0012802

changing the status to confirmed (by jghali)

Tsoots

2006-10-22 23:46

reporter   ~0013101

Fixed with the stack switching fix.

plinnell

2006-10-30 12:26

viewer   ~0013189

per IRC with the openBSD folks its fixed there

Issue History

Date Modified Username Field Change
2006-10-04 21:55 kili New Issue
2006-10-04 23:24 Tsoots Note Added: 0012790
2006-10-04 23:45 kili Note Added: 0012791
2006-10-04 23:46 jghali Note Added: 0012792
2006-10-04 23:47 Tsoots Note Added: 0012793
2006-10-05 09:39 mhanski Note Added: 0012802
2006-10-05 09:39 mhanski Status new => confirmed
2006-10-08 11:32 Tsoots Status confirmed => assigned
2006-10-08 11:32 Tsoots Assigned To => Tsoots
2006-10-22 23:45 Tsoots Status assigned => resolved
2006-10-22 23:45 Tsoots Fixed in Version => 1.3.3.5cvs
2006-10-22 23:45 Tsoots Resolution open => fixed
2006-10-22 23:46 Tsoots Note Added: 0013101
2006-10-30 12:26 plinnell Status resolved => closed
2006-10-30 12:26 plinnell Note Added: 0013189
2007-05-23 20:26 christoph_s Relationship added child of 0005745