View Issue Details

IDProjectCategoryView StatusLast Update
0001662ScribusGeneralpublic2014-07-14 20:25
Reporterdannemare Assigned Tofschmid  
Status closedResolutionno change required 
Platformx86OSDebianOS VersionSarge
Product Version1.2.5cvs 
Summary0001662: Scribus eats ALL my memory and then gets killed by the oom-killer
DescriptionWorking with Scribus on a particular document (document has already been attached to another (private) report by me), I have three times (twice with 1.2.1cvs and once with 1.2.1) witnessed a really bad behavior.

Scribus simply goes berserk and eats all phys. and virt. memory available. The system becomes _very_ unresponsive (key presses may take 20-30 seconds before taking effect) and it all ends with the kernel oom-killer killing scribus. Output from dmesg pasted into "Additional Information".
Steps To ReproduceSimply do (in my two page document):
1) delete 2nd page
2) get new text on 1st page

Just as the 'new file dialog' pops up, Scribus (sometimes) goes haywire.
Additional Informationoom-killer: gfp_mask=0x1d2
DMA per-cpu:
cpu 0 hot: low 2, high 6, batch 1
cpu 0 cold: low 0, high 2, batch 1
Normal per-cpu:
cpu 0 hot: low 32, high 96, batch 16
cpu 0 cold: low 0, high 32, batch 16
HighMem per-cpu: empty

Free pages: 3416kB (0kB HighMem)
Active:60748 inactive:59672 dirty:0 writeback:0 unstable:0 free:854 slab:3976 mapped:120276 pagetables:1058
DMA free:1440kB min:20kB low:40kB high:60kB active:6196kB inactive:5612kB present:16384kB
protections[]: 10 360 360
Normal free:1976kB min:700kB low:1400kB high:2100kB active:236796kB inactive:233076kB present:507888kB
protections[]: 0 350 350
HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB present:0kB
protections[]: 0 0 0
DMA: 0*4kB 0*8kB 6*16kB 2*32kB 2*64kB 1*128kB 0*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1440kB
Normal: 128*4kB 15*8kB 0*16kB 0*32kB 1*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1976kB
HighMem: empty
Swap cache: add 264379, delete 264370, find 9541/11840, race 0+2
Out of Memory: Killed process 26197 (scribus).

After scribus is killed my memory stats are:
             total used free shared buffers cached
Mem: 516472 175560 340912 0 4004 57540
-/+ buffers/cache: 114016 402456
Swap: 976712 299416 677296

In other words, killing Scribus releases roughly 1 GB of mem.
TagsNo tags attached.


related to 0002376 closedringerc Source code requests 
related to 0002438 acknowledged Metabug: Cases of extreme memory use 



2005-02-12 08:28

administrator   ~0003688

How large are the images and font files you are using with this document?


2005-02-12 08:59

reporter   ~0003689

I'm using one image file of size 5 KB. The txt file from which I get my article text is 2.5 KB The three font files used throughout the 2 page document are all about 100 KB in size.

All in all, we are talking *mini* stuff.

Could it be a race conditions or does that not result in the behavior I witness?


2005-02-12 10:02

administrator   ~0003690

Maybe this relates to your other bug 1657. Given the sizes of the images, it is very weird behaviour, one that I cant say I've seen. What versions of Qt/gcc/etc do you have installed?


2005-02-14 21:43

reporter   ~0003704

gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-6)

qt is version 3.3.3-8 (also the one in Debian Sarge at the moment)

I have analyzed a coredump from a previous crash. Here is what I did:

$ ulimit -c unlimited

$ gdb /usr/bin/scribus core
GNU gdb 6.3-debian
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-linux"...Using host libthread_db library "/lib/tls/".

Core was generated by `/usr/bin/scribus'.
Program terminated with signal 11, Segmentation fault.

warning: current_sos: Can't read pathname for load map: Input/output error

Reading symbols from /usr/lib/
Loaded symbols for /usr/lib/
Reading symbols from /usr/lib/
Loaded symbols for /usr/lib/
[ ... ]
Reading symbols from /usr/lib/
Loaded symbols for /usr/lib/
Reading symbols from /lib/tls/
Loaded symbols for /lib/tls/
Reading symbols from /usr/X11R6/lib/X11/locale/lib/common/
Loaded symbols for /usr/X11R6/lib/X11/locale/lib/common/
#0 0x4069c581 in QGList::unlink () from /usr/lib/
(gdb) bt full
#0 0x4069c581 in QGList::unlink () from /usr/lib/
No symbol table info available.
0000001 0x4069c949 in QGList::takeAt () from /usr/lib/
No symbol table info available.
0000002 0x081828c6 in QPtrList<Pti>::take (this=0x8e28ed0, i=0) at qptrlist.h:90
No locals.
0000003 0x0832abdb in PageItem::DrawObj (this=0x8c27290, p=0x8e26ee0, e={x1 = 0, y1 = 296, x2 = 159, y2 = 306}) at pageitem.cpp:659
        s = 0
        cl = {data = 0x40490000}
        tmp = {static color_init = true, static globals_init = true, static colormodel = d32, d = {argb = 1224736768, d8 = {argb = 1224736768,
      pix = 84 'T', invalid = 82 'R', dirty = 73 'I', direct = 68 'D'}, d32 = {argb = 1224736768, pix = 1145655892}}}
        CL = {<QMemArray<FPoint>> = {<> = {<No data fields>}, <No data fields>}, <No data fields>}
        cl = {<QMemArray<QPoint>> = {<> = {<No data fields>}, <No data fields>}, static splen = 18, static sp = 0x8a40800}
        pf = {<Qt> = {static color0 = @0x40857a20, static color1 = @0x40857a28, static black = @0x40857a30, static white = @0x40857a38,
[ ... ]
0000031 0x4039ae08 in QEventLoop::exec () from /usr/lib/
No symbol table info available.
0000032 0x40388e51 in QApplication::exec () from /usr/lib/
No symbol table info available.
0000033 0x083a039f in mainGui (argc=1, argv=0xbffff824) at main.cpp:220
        app = <incomplete type>
        langs = {<QValueList<QString>> = {sh = 0x84469e0}, <No data fields>}
        scribus = (class ScribusApp *) 0x8447930
0000034 0x0839fcb3 in main (argc=1, argv=0xbffff824) at main.cpp:126
        arg = {static null = {static null = <same as static member of an already seen type>, d = 0x83ea070, static shared_null = 0x83ea070},
  d = 0x83ea070, static shared_null = 0x83ea070}
(gdb) frame 34
0000034 0x0839fcb3 in main (argc=1, argv=0xbffff824) at main.cpp:126
126 return mainGui(argc, argv);
(gdb) quit

I have cut out some of the output which I thought was not relevant (but I may be wrong). I can provide with the *entire* output (very much) from gdb if you want it.

But looking at gdb's output it seems the problem arises around line 126 in main.cpp.

Hopefully this helps in debugging the problem...


2005-03-25 05:48

reporter   ~0003969

It seems to be realated to the bug in AddFont, if you compiled from source you can add this to AddFont() in scribusdoc.cpp
if (UsedFonts.contains(name)) {
   return true; }


2005-04-07 19:50

viewer   ~0004120

adding to 1.2.2 list


2005-04-07 20:07

viewer   ~0004121

as I noted in the other related bug, the race might also be image related progressive jpeg should not be allowed anywhere scribus


2005-07-03 19:02

viewer   ~0005375

bmuping to 1.2.3


2014-07-14 20:25

updater   ~0032749

reason: obsolescence

Issue History

Date Modified Username Field Change
2005-02-11 00:03 dannemare New Issue
2005-02-12 08:28 cbradney Note Added: 0003688
2005-02-12 08:59 dannemare Note Added: 0003689
2005-02-12 10:02 cbradney Note Added: 0003690
2005-02-14 21:43 dannemare Note Added: 0003704
2005-03-25 05:48 TomK32 Note Added: 0003969
2005-04-07 19:50 plinnell Note Added: 0004120
2005-04-07 19:50 plinnell Assigned To => fschmid
2005-04-07 19:50 plinnell Status new => assigned
2005-04-07 19:50 plinnell Product Version 1.2.1 => 1.2.2cvs
2005-04-07 20:07 plinnell Note Added: 0004121
2005-07-03 19:02 plinnell Note Added: 0005375
2005-07-03 19:02 plinnell Product Version 1.2.2cvs => 1.2.3
2005-08-03 15:46 ringerc Relationship added related to 0002376
2005-08-14 15:15 ringerc Relationship added related to 0002438
2005-09-04 21:48 plinnell Product Version 1.2.3 => 1.2.4cvs
2005-12-26 20:12 plinnell Product Version 1.2.4cvs => 1.2.5cvs
2007-04-04 13:47 plinnell Relationship added has duplicate 0005490
2007-04-04 13:48 plinnell Relationship deleted has duplicate 0005490
2014-07-14 20:25 Kunda Note Added: 0032749
2014-07-14 20:25 Kunda Status assigned => closed
2014-07-14 20:25 Kunda Resolution open => no change required