[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#493363: ksvg: Some SVG images make kio_thumbnail / Konqueror take 95% CPU and more than 1GB of memory



Package: ksvg
Version: 4:3.5.9-2
Severity: important

ii  openclipart-svg                     0.18+dfsg-5                         clip art in SVG format

Using Konqueror to browser the directories of the openclipart-svg
package makes kio_thumbnail hog CPU and memory.  Opening some of
the files similarly makes Konqueror itself lock up hogging CPU
and memory.

A particular problem file seems to be:
  /usr/share/openclipart/svg/shapes/shield_matt_todd_01.svg
which drove Konqueror's memory use above 3GB before it was
killed.

IceApe displays the image without problems.

Browsing away from the directory will kill the kio_thumbnail
process and recover.  Opening the file in Konqueror itself is
more problematic.


It seems to be stuck in an infinite loop in 
  KSVG::SVGAnimatedPointsImpl::parsePoints
(see attachment)

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26 (SMP w/1 CPU core; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages ksvg depends on:
ii  kdelibs4c2a             4:3.5.9.dfsg.1-6 core libraries and binaries for al
ii  libart-2.0-2            2.3.20-2         Library of functions for 2D graphi
ii  libc6                   2.7-13           GNU C Library: Shared libraries
ii  libfontconfig1          2.6.0-1          generic font configuration library
ii  libfreetype6            2.3.7-1          FreeType 2 font engine, shared lib
ii  libfribidi0             0.10.9-1         Free Implementation of the Unicode
ii  libgcc1                 1:4.3.1-8        GCC support library
ii  liblcms1                1.17.dfsg-1      Color management library
ii  libqt3-mt               3:3.3.8b-5       Qt GUI Library (Threaded runtime v
ii  libstdc++6              4.3.1-8          The GNU Standard C++ Library v3
ii  libx11-6                2:1.1.4-2        X11 client-side library

ksvg recommends no packages.

ksvg suggests no packages.

-- no debconf information
I attached GDB, took a stack trace, then "finish"'d until the
function didn't return in a reasonable time.  It seems to be
stuck in:

#5  0x00007f5a2e327817 in KSVG::SVGAnimatedPointsImpl::parsePoints (_points=<value optimized out>, points=<value optimized out>)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/SVGAnimatedPointsImpl.cc:85
#6  0x00007f5a2e3279a3 in KSVG::SVGAnimatedPointsImpl::putValueProperty (this=<value optimized out>, exec=<value optimized out>, token=<value optimized out>, 
    value=<value optimized out>, attr=<value optimized out>) at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/SVGAnimatedPointsImpl.cc:129
#7  0x00007f5a2e3fb429 in KSVG::SVGAnimatedPointsImpl::put (this=0x111f208, p1=0xefe910, p2=@0x7fff47c87310, p3=@0x7fff47c872f0, p4=16)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/ecma/ksvg_lookup.h:218
#8  0x00007f5a2e3fb614 in KSVG::SVGPolyElementImpl::put (this=0x111efb0, p1=0xefe910, p2=@0x7fff47c87310, p3=@0x7fff47c872f0, p4=16)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/generateddata.cpp:6769
#9  0x00007f5a2e3fb75b in KSVG::SVGPolygonElementImpl::put (this=0x111efb0, p1=0xefe910, p2=@0x7fff47c87310, p3=@0x7fff47c872f0, p4=16)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/generateddata.cpp:6825
#10 0x00007f5a2e4227d5 in KSVGRWBridge<KSVG::SVGPolygonElementImpl>::put (this=0x111f800, exec=0x7fff47c86fe0, propertyName=@0x31, value=@0x7f5a3d525e60, attr=4)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/ecma/ksvg_bridge.h:95
#11 0x00007f5a2e33fa5c in KSVG::SVGElementImpl::setAttributeInternal (this=<value optimized out>, name=@0x7fff47c873b0, value=<value optimized out>)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/SVGElementImpl.cc:340
#12 0x00007f5a2e340fea in KSVG::SVGElementImpl::setAttributes (this=0x111efb0, attrs=@0xfb1af0) at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/SVGElementImpl.cc:459
#13 0x00007f5a2e454b7d in KSVG::InputHandler::startElement (this=0xf04d10, namespaceURI=<value optimized out>, qName=@0xf1eec0, attrs=@0xfb1af0)
    at /build/buildd/kdegraphics-3.5.9/./ksvg/core/KSVGReader.cc:299
#14 0x00007f5a3d3db87e in QXmlSimpleReader::processElementEmptyTag (this=0xf8f6c0) at xml/qxml.cpp:3522
#15 0x00007f5a3d3e11be in QXmlSimpleReader::parseElement (this=0xf8f6c0) at xml/qxml.cpp:3492
#16 0x00007f5a3d3e1c2b in QXmlSimpleReader::parseContent (this=0xf8f6c0) at xml/qxml.cpp:3943
#17 0x00007f5a3d3e1218 in QXmlSimpleReader::parseElement (this=0xf8f6c0) at xml/qxml.cpp:3471
#18 0x00007f5a3d3e1c2b in QXmlSimpleReader::parseContent (this=0xf8f6c0) at xml/qxml.cpp:3943
#19 0x00007f5a3d3e1218 in QXmlSimpleReader::parseElement (this=0xf8f6c0) at xml/qxml.cpp:3471
#20 0x00007f5a3d3e1c2b in QXmlSimpleReader::parseContent (this=0xf8f6c0) at xml/qxml.cpp:3943
#21 0x00007f5a3d3e1218 in QXmlSimpleReader::parseElement (this=0xf8f6c0) at xml/qxml.cpp:3471
#22 0x00007f5a3d3e1c2b in QXmlSimpleReader::parseContent (this=0xf8f6c0) at xml/qxml.cpp:3943
#23 0x00007f5a3d3e1218 in QXmlSimpleReader::parseElement (this=0xf8f6c0) at xml/qxml.cpp:3471
#24 0x00007f5a3d3e6049 in QXmlSimpleReader::parseBeginOrContinue (this=0xf8f6c0, state=<value optimized out>, incremental=false) at xml/qxml.cpp:3017
#25 0x00007f5a3d3e6474 in QXmlSimpleReader::parse (this=0xf8f6c0, input=<value optimized out>, incremental=49) at xml/qxml.cpp:2959
#26 0x00007f5a3d3d702f in QXmlSimpleReader::parse (this=0xfb0ac0, input=0x7fff47c86fe0) at xml/qxml.cpp:2914
#27 0x00007f5a2e34728d in KSVG::SVGDocumentImpl::slotSVGContent (this=0xfb9ac0, dev=0x113d010) at /build/buildd/kdegraphics-3.5.9/./ksvg/impl/SVGDocumentImpl.cc:267
#28 0x00007f5a2e3473e4 in KSVG::SVGDocumentImpl::qt_invoke (this=0xfb9ac0, _id=4, _o=0x7fff47c88c10) at ./SVGDocumentImpl.moc:177
#29 0x00007f5a3d1f636c in QObject::activate_signal (this=0xf4a3a0, clist=<value optimized out>, o=0x7fff47c88c10) at kernel/qobject.cpp:2359
#30 0x00007f5a2e44803d in KSVG::KSVGLoader::gotResult (this=0xf4a3a0, t0=0x113d010) at ./KSVGLoader.moc:113
#31 0x00007f5a2e44a30a in KSVG::KSVGLoader::slotResult (this=0xf4a3a0, job=0x11231f0) at /build/buildd/kdegraphics-3.5.9/./ksvg/core/KSVGLoader.cpp:138
#32 0x00007f5a2e44a4bc in KSVG::KSVGLoader::qt_invoke (this=0xf4a3a0, _id=3, _o=0x7fff47c88e40) at ./KSVGLoader.moc:133
#33 0x00007f5a3d1f636c in QObject::activate_signal (this=0x11231f0, clist=<value optimized out>, o=0x7fff47c88e40) at kernel/qobject.cpp:2359
#34 0x00007f5a3dcddd9d in KIO::Job::result (this=0x11231f0, t0=0x11231f0) at ./jobclasses.moc:162
#35 0x00007f5a3dd27f9b in KIO::Job::emitResult (this=0x11231f0) at /build/buildd/kdelibs-3.5.9.dfsg.1/./kio/kio/job.cpp:235
#36 0x00007f5a3dd28db6 in KIO::SimpleJob::slotFinished (this=0x11231f0) at /build/buildd/kdelibs-3.5.9.dfsg.1/./kio/kio/job.cpp:601
#37 0x00007f5a3dd29373 in KIO::TransferJob::slotFinished (this=0x11231f0) at /build/buildd/kdelibs-3.5.9.dfsg.1/./kio/kio/job.cpp:971
#38 0x00007f5a3dd1e0c5 in KIO::TransferJob::qt_invoke (this=0x11231f0, _id=17, _o=0x7fff47c892f0) at ./jobclasses.moc:1071
#39 0x00007f5a3d1f636c in QObject::activate_signal (this=0xfeb1b0, clist=<value optimized out>, o=0x7fff47c892f0) at kernel/qobject.cpp:2359
#40 0x00007f5a3d1f6b04 in QObject::activate_signal (this=0xfb0ac0, signal=<value optimized out>) at kernel/qobject.cpp:2328
#41 0x00007f5a3dd39028 in KIO::SlaveInterface::dispatch (this=0xfeb1b0, _cmd=104, rawdata=@0x7fff47c895c0)
    at /build/buildd/kdelibs-3.5.9.dfsg.1/./kio/kio/slaveinterface.cpp:243
#42 0x00007f5a3dcf8dae in KIO::SlaveInterface::dispatch (this=0xfeb1b0) at /build/buildd/kdelibs-3.5.9.dfsg.1/./kio/kio/slaveinterface.cpp:173
#43 0x00007f5a3dd00a26 in KIO::Slave::gotInput (this=0xfb0ac0) at /build/buildd/kdelibs-3.5.9.dfsg.1/./kio/kio/slave.cpp:300
#44 0x00007f5a3dd00bd8 in KIO::Slave::qt_invoke (this=0xfeb1b0, _id=4, _o=0x7fff47c896c0) at ./slave.moc:113
#45 0x00007f5a3d1f636c in QObject::activate_signal (this=0xfeb0c0, clist=<value optimized out>, o=0x7fff47c896c0) at kernel/qobject.cpp:2359
#46 0x00007f5a3d1f6a24 in QObject::activate_signal (this=0xfeb0c0, signal=<value optimized out>, param=<value optimized out>) at kernel/qobject.cpp:2452
#47 0x00007f5a3d21034b in QSocketNotifier::event (this=0xfeb0c0, e=0x7fff47c89a60) at kernel/qsocketnotifier.cpp:261
#48 0x00007f5a3d1a0953 in QApplication::internalNotify (this=<value optimized out>, receiver=0xfeb0c0, e=0x7fff47c89a60) at kernel/qapplication.cpp:2638
#49 0x00007f5a3d1a1668 in QApplication::notify (this=0x7fff47c89d90, receiver=0x7fff47c86fe0, e=0x7fff47c89a60) at kernel/qapplication.cpp:2361
#50 0x00007f5a3c963c42 in KApplication::notify (this=0x7fff47c89d90, receiver=0xfeb0c0, event=0x7fff47c89a60)
    at /build/buildd/kdelibs-3.5.9.dfsg.1/./kdecore/kapplication.cpp:550
#51 0x00007f5a3d196663 in QEventLoop::activateSocketNotifiers (this=0xc03290) at kernel/qapplication.h:523
#52 0x00007f5a3d156af6 in QEventLoop::processEvents (this=0xc03290, flags=<value optimized out>) at kernel/qeventloop_x11.cpp:386
#53 0x00007f5a3d1b5001 in QEventLoop::enterLoop (this=0xfb0ac0) at kernel/qeventloop.cpp:201
#54 0x00007f5a3d1b4eb2 in QEventLoop::exec (this=0xfb0ac0) at kernel/qeventloop.cpp:148
#55 0x00007f5a3f82b762 in kdemain () from /usr/lib/libkdeinit_konqueror.so
#56 0x00007f5a3ec7b1a6 in __libc_start_main () from /lib/libc.so.6


Reply to: