View Issue Details

IDProjectCategoryView StatusLast Update
0009616ScribusImport / Exportpublic2011-01-04 11:00
Reporterjirib Assigned Toale  
PriorityhighSeverityblockReproducibilityalways
Status closedResolutionfixed 
Platformi386OSOpenBSDOS Version4.8 -current
Product Version1.4.0svn 
Target Version1.4.0svnFixed in Version1.4.0svn 
Summary0009616: Scribus freezes when importing (Get text) Microsoft Word document into text box
DescriptionScribus freezes when importing (Get text) Microsoft Word document into text box.

I got same issue with 1.3.9 and 1.4.0svn (23.12.2010). It doesn't crash, one has to kill it.

Sorry I'm not familiar with gdb so I'm not sure if following output is useful or not. (After scribus got freezed I did ^C and `bt'.)

!22 jirib@t400(ttyp4) $ gdb scribus-ng
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-unknown-openbsd4.8"...
(gdb) run
Starting program: /usr/local/bin/scribus-ng
QGtkStyle was unable to detect the current GTK+ theme.
[New process 25531]
QProcess: Destroyed while process is still running.
[New process 25531, thread 0x7c29fc00]
QProcess: Destroyed while process is still running.

bt
^C
Program received signal SIGINT, Interrupt.
0x08d5e229 in poll () from /usr/lib/libc.so.58.0
(gdb) bt
#0 0x08d5e229 in poll () from /usr/lib/libc.so.58.0
0000001 0x0d68a301 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760
0000002 0x0d68b1b3 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382
0000003 0x0d68b726 in _thread_kern_sched_state (state=PS_SLEEP_WAIT, fname=0x2d6781fc "/usr/src/lib/libpthread/uthread/uthread_nanosleep.c", lineno=84) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550
0000004 0x0d67e972 in nanosleep (time_to_sleep=0xcfbc642c, time_remaining=0x0) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84
0000005 0x08d3da1e in usleep (useconds=Variable "useconds" is not available.
) at /usr/src/lib/libc/gen/usleep.c:46
0000006 0x01cb38c1 in DocIm (this=0x7cb83c00, fname=@0xcfbc6530, enc=@0xcfbc652c, textO=true, w=0x875e1dc0) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/plugins/gettext/docim/docim.cpp:136
0000007 0x01cb4146 in GetText (filename=@0xcfbc6530, encoding=@0xcfbc652c, textOnly=true, writer=0x875e1dc0) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/plugins/gettext/docim/docim.cpp:70
0000008 0x1c448a7b in gtGetText::CallDLL (this=0x88ee11c0, idata=@0xcfbc65bc, filePath=@0xcfbc6650, encoding=@0xcfbc6658, textOnly=true, append=false, importItem=0x82e26000)
    at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/gtgettext.cpp:244
0000009 0x1c44998d in gtGetText::launchImporter (this=0x88ee11c0, importer=-1, filename=@0xcfbc6650, textOnly=true, encoding=@0xcfbc6658, append=false, target=0x0)
    at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/gtgettext.cpp:101
0000010 0x1c847542 in ScribusMainWindow::slotGetContent (this=0x7dfa7000) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/scribus.cpp:4298
0000011 0x1c1e8a7c in ScribusMainWindow::qt_metacall (this=0x7dfa7000, _c=QMetaObject::InvokeMetaMethod, _id=58, _a=0xcfbc689c) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/moc_scribus.cxx:480
0000012 0x0b2e45a3 in QMetaObject::metacall () from /usr/local/lib/qt4/libQtCore.so.9.0
0000013 0x0b2f5bbf in QMetaObject::activate () from /usr/local/lib/qt4/libQtCore.so.9.0
0000014 0x0d8aada9 in QAction::triggered () from /usr/local/lib/qt4/libQtGui.so.10.0
0000015 0x0d8ac21f in QAction::activate () from /usr/local/lib/qt4/libQtGui.so.10.0
0000016 0x0dd9fe30 in QMenuPrivate::activateCausedStack () from /usr/local/lib/qt4/libQtGui.so.10.0
0000017 0x0dda701b in QMenuPrivate::activateAction () from /usr/local/lib/qt4/libQtGui.so.10.0
0000018 0x0dda9112 in QMenu::mouseReleaseEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000019 0x0d91d169 in QWidget::event () from /usr/local/lib/qt4/libQtGui.so.10.0
0000020 0x0dda69c4 in QMenu::event () from /usr/local/lib/qt4/libQtGui.so.10.0
0000021 0x0d8b2cac in QApplicationPrivate::notify_helper () from /usr/local/lib/qt4/libQtGui.so.10.0
0000022 0x0d8b995c in QApplication::notify () from /usr/local/lib/qt4/libQtGui.so.10.0
0000023 0x0b2ddcbb in QCoreApplication::notifyInternal () from /usr/local/lib/qt4/libQtCore.so.9.0
0000024 0x0d8b5029 in QApplicationPrivate::sendMouseEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000025 0x0d94a2c7 in QETWidget::translateMouseEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000026 0x0d9499be in QApplication::x11ProcessEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000027 0x0d976e54 in QGuiEventDispatcherGlibPrivate::QGuiEventDispatcherGlibPrivate () from /usr/local/lib/qt4/libQtGui.so.10.0
0000028 0x03e07e47 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.2600.0
0000029 0x03e0b7be in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2600.0
0000030 0x03e0bde5 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.2600.0
0000031 0x0b310a7b in QEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0
0000032 0x0d976965 in QGuiEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtGui.so.10.0
0000033 0x0b2dce83 in QEventLoop::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0
0000034 0x0b2dd11a in QEventLoop::exec () from /usr/local/lib/qt4/libQtCore.so.9.0
0000035 0x0dda40b7 in QMenu::exec () from /usr/local/lib/qt4/libQtGui.so.10.0
0000036 0x1c317b1c in CanvasMode_Normal::createContextMenu (this=0x8ac77a00, currItem=0x82e26000, mx=421.5, my=326.25) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/canvasmode_normal.cpp:1490
0000037 0x1c31acb7 in CanvasMode_Normal::mouseReleaseEvent (this=0x8ac77a00, m=0xcfbc7ff8) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/canvasmode_normal.cpp:790
0000038 0x1c916ea8 in ScribusView::eventFilter (this=0x83b90200, obj=0x83b9a900, event=0xcfbc7ff8) at /data/build/ports/pobj/scribus-ng-20101223-debug/Version135/Scribus/scribus/scribusview.cpp:4801
0000039 0x0b2de111 in QCoreApplicationPrivate::sendThroughObjectEventFilters () from /usr/local/lib/qt4/libQtCore.so.9.0
0000040 0x0d8b2c83 in QApplicationPrivate::notify_helper () from /usr/local/lib/qt4/libQtGui.so.10.0
0000041 0x0d8b995c in QApplication::notify () from /usr/local/lib/qt4/libQtGui.so.10.0
0000042 0x0b2ddcbb in QCoreApplication::notifyInternal () from /usr/local/lib/qt4/libQtCore.so.9.0
0000043 0x0d8b5029 in QApplicationPrivate::sendMouseEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000044 0x0d94a4a9 in QETWidget::translateMouseEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000045 0x0d9499be in QApplication::x11ProcessEvent () from /usr/local/lib/qt4/libQtGui.so.10.0
0000046 0x0d976e54 in QGuiEventDispatcherGlibPrivate::QGuiEventDispatcherGlibPrivate () from /usr/local/lib/qt4/libQtGui.so.10.0
0000047 0x03e07e47 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.2600.0
0000048 0x03e0b7be in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2600.0
0000049 0x03e0bde5 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.2600.0
0000050 0x0b310a7b in QEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0
0000051 0x0d976965 in QGuiEventDispatcherGlib::processEvents () from /usr/local/lib/qt4/libQtGui.so.10.0
0000052 0x0b2dce83 in QEventLoop::processEvents () from /usr/local/lib/qt4/libQtCore.so.9.0
0000053 0x0b2dd11a in QEventLoop::exec () from /usr/local/lib/qt4/libQtCore.so.9.0
0000054 0x0b2df296 in QCoreApplication::exec () from /usr/local/lib/qt4/libQtCore.so.9.0
0000055 0x0d8b2687 in QApplication::exec () from /usr/local/lib/qt4/libQtGui.so.10.0
0000056 0x1cb15f96 in mainApp (argc=1, argv=0xcfbc8844) at main_nix.cpp:84
0000057 0x1cb16006 in main (argc=Cannot access memory at address 0x5
) at main_nix.cpp:52
Steps To Reproduce* use openbsd 4.8
* compile 1.4.0svn version
* try to import text from a microsoft word document into text box
TagsNo tags attached.
Patch

Activities

plinnell

2010-12-27 11:38

viewer   ~0025213

Block bugs block a release.

Is antiword installed? Scribus should use that at runtime to import .doc files

jirib

2010-12-28 10:22

reporter   ~0025214

yes antiword is installed

plinnell

2011-01-01 21:48

viewer   ~0025226

Confirmed on openSUSE 11.3 Indeed it seems to loop and I get a simialar back trace. And indeed a release blocker IMO.

plinnell

2011-01-01 21:48

viewer   ~0025227

^C
Program received signal SIGINT, Interrupt.
0xffffe424 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe424 in __kernel_vsyscall ()
0000001 0xb681a086 in nanosleep () from /lib/libc.so.6
0000002 0xb684ac8d in usleep () from /lib/libc.so.6
0000003 0xaff3a49d in DocIm::DocIm (this=0x95f15d0, fname=..., enc=..., textO=false, w=0x95dc9c0)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/plugins/gettext/docim/docim.cpp:136
0000004 0xaff3a098 in GetText (filename=..., encoding=..., textOnly=false, writer=0x95dc9c0)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/plugins/gettext/docim/docim.cpp:70
0000005 0x08457296 in gtGetText::CallDLL (this=0x9641980, idata=..., filePath=..., encoding=..., textOnly=false, append=false, importItem=0x9348790)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/gtgettext.cpp:244
0000006 0x08456689 in gtGetText::launchImporter (this=0x9641980, importer=-1, filename=..., textOnly=false, encoding=..., append=false, target=0x0)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/gtgettext.cpp:101
0000007 0x087953e9 in ScribusMainWindow::slotGetContent (this=0x8d2e4b8) at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/scribus.cpp:4305
0000008 0x08291f9d in ScribusMainWindow::qt_metacall (this=0x8d2e4b8, _c=QMetaObject::InvokeMetaMethod, _id=58, _a=0xbfffcd08)
    at /home/mrdocs/svn2/135x/build135/scribus/moc_scribus.cxx:486
0000009 0xb71bc60d in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
0000010 0xb71cc80c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
0000011 0xb758debd in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
0000012 0xb758e15b in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
0000013 0xb7a29755 in QMenuPrivate::activateCausedStack(QList<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) ()
   from /usr/lib/libQtGui.so.4
0000014 0xb7a30367 in QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) () from /usr/lib/libQtGui.so.4
0000015 0xb7a31235 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
0000016 0xb75f04d0 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
0000017 0xb7a3175c in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4
0000018 0xb7595014 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
0000019 0xb759e930 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
0000020 0xb71b5d6e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
0000021 0xb75960bc in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/libQtGui.so.4
0000022 0xb76227c6 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/libQtGui.so.4
0000023 0xb762170e in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
0000024 0xb764bed0 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/libQtGui.so.4
0000025 0xb64d7b49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
0000026 0xb64d8350 in ?? () from /usr/lib/libglib-2.0.so.0
0000027 0xb64d860e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
0000028 0xb71e456b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
0000029 0xb764baca in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtGui.so.4
0000030 0xb71b504d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
0000031 0xb71b5279 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
0000032 0xb7a2d667 in QMenu::exec(QPoint const&, QAction*) () from /usr/lib/libQtGui.so.4
0000033 0x083837a5 in CanvasMode_Normal::createContextMenu (this=0x8fd82e0, currItem=0x9348790, mx=439.53488372093022, my=210.13953488372093)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/canvasmode_normal.cpp:1490
0000034 0x0837f47e in CanvasMode_Normal::mouseReleaseEvent (this=0x8fd82e0, m=0xbfffe644)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/canvasmode_normal.cpp:790
0000035 0x08850ef3 in ScribusView::eventFilter (this=0x92c12b8, obj=0x93473c8, event=0xbfffe644)
    at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/scribusview.cpp:4801
0000036 0xb71b5f06 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
0000037 0xb7594fe4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
0000038 0xb759e930 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
0000039 0xb71b5d6e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
0000040 0xb75960bc in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/libQtGui.so.4
0000041 0xb76225ec in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/libQtGui.so.4
0000042 0xb762170e in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
0000043 0xb764bed0 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/libQtGui.so.4
0000044 0xb64d7b49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
0000045 0xb64d8350 in ?? () from /usr/lib/libglib-2.0.so.0
0000046 0xb64d860e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
0000047 0xb71e456b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
0000048 0xb764baca in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtGui.so.4
0000049 0xb71b504d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
0000050 0xb71b5279 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
0000051 0xb71b9d20 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
0000052 0xb7592d14 in QApplication::exec() () from /usr/lib/libQtGui.so.4
0000053 0x089a4e71 in mainApp (argc=1, argv=0xbfffef74) at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/main_nix.cpp:84
0000054 0x089a4df7 in main (argc=1, argv=0xbfffef74) at /home/mrdocs/svn2/135x/Version135/Scribus/scribus/main_nix.cpp:52
(gdb)

cezaryece

2011-01-02 11:40

updater   ~0025229

I can confirm this bug in 1.4.0 under Kubuntu Lucid 64bit.
Although I dont want to import doc files (I save it as ODT from OOfice), but sometimes I click .doc instead .odt file and Scribus go sleep in loop.

ale

2011-01-02 18:26

manager  

docim.cpp.patch (401 bytes)   
--- docim.cpp	2011-01-02 19:22:32.507187793 +0100
+++ docim.cpp~ale	2011-01-02 19:30:07.778172853 +0100
@@ -113,7 +113,11 @@
 		return;
 	}
 
-	while(proc->state()==QProcess::Running)
+    while (proc->waitForReadyRead()) {
+        usleep(5000);
+    }
+
+	while(!proc->atEnd() || proc->state()==QProcess::Running)
 	{
 		proc->setReadChannel(QProcess::StandardOutput);
 		if ( proc->canReadLine() )
docim.cpp.patch (401 bytes)   

ale

2011-01-02 19:01

manager   ~0025236

peppe on #qt told that we should make the call asynchronous using QProcess signals, and return to the event loop... i may follow that hint and give a new patch for trunk at some times in the future...

plinnell

2011-01-04 11:00

viewer   ~0025271

Confirmed the fix works.. :)

Issue History

Date Modified Username Field Change
2010-12-25 01:16 jirib New Issue
2010-12-27 11:38 plinnell Note Added: 0025213
2010-12-27 11:38 plinnell Severity block => crash
2010-12-27 11:38 plinnell Target Version => 1.4.0svn
2010-12-28 10:22 jirib Note Added: 0025214
2011-01-01 21:46 plinnell Status new => confirmed
2011-01-01 21:48 plinnell Note Added: 0025226
2011-01-01 21:48 plinnell Priority normal => high
2011-01-01 21:48 plinnell Severity crash => block
2011-01-01 21:48 plinnell Note Added: 0025227
2011-01-02 11:40 cezaryece Note Added: 0025229
2011-01-02 18:25 ale Assigned To => ale
2011-01-02 18:25 ale Status confirmed => assigned
2011-01-02 18:26 ale File Added: docim.cpp.patch
2011-01-02 18:42 fschmid Status assigned => resolved
2011-01-02 18:42 fschmid Fixed in Version => 1.4.0svn
2011-01-02 18:42 fschmid Resolution open => fixed
2011-01-02 19:01 ale Note Added: 0025236
2011-01-04 11:00 plinnell Note Added: 0025271
2011-01-04 11:00 plinnell Status resolved => closed