Bug 305699

Summary: Gwenview crashes on exit after displaying SVG image
Product: [Applications] gwenview Reporter: Māris Nartišs <maris.kde>
Component: generalAssignee: Gwenview Bugs <gwenview-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: agateau, benni, marsu1, sqn14, s_chriscollins
Priority: NOR Keywords: testcase
Version First Reported In: 4.10.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: SVG file causing crash
New crash information added by DrKonqi

Description Māris Nartišs 2012-08-24 09:13:13 UTC
Application: gwenview (2.9.0)
KDE Platform Version: 4.9.00
Qt Version: 4.8.2
Operating System: Linux 3.4.0-gentoo x86_64
Distribution (Platform): Gentoo Packages

-- Information about the crash:
- What I was doing when the application crashed:
Open SVG image with clipped part in Gwenview. Close Gwenview. Crash!

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f3e9f0ea7c0 (LWP 24589))]

Thread 2 (Thread 0x7f3e9b2eb700 (LWP 24597)):
#0  0x00007f3eaafcbc33 in poll () from /lib64/libc.so.6
#1  0x00007f3ea7b51836 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f3ea7b51964 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f3ead490d96 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f3ead460942 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00007f3ead460bf5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007f3ead35d0a8 in QThread::exec() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007f3ead43f668 in QInotifyFileSystemWatcherEngine::run() () from /usr/lib64/qt4/libQtCore.so.4
#8  0x00007f3ead35f71b in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00007f3ea4c3dae4 in ?? () from /usr/lib64/libGL.so.1
#10 0x00007f3ea9732d96 in start_thread () from /lib64/libpthread.so.0
#11 0x00007f3eaafd4a1d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f3e9f0ea7c0 (LWP 24589)):
[KCrash Handler]
#6  0x00007f3eabd496a8 in QImagePixmapCleanupHooks::executeImageHooks(long long) () from /usr/lib64/qt4/libQtGui.so.4
#7  0x00007f3eabd1b1e4 in QImageData::~QImageData() () from /usr/lib64/qt4/libQtGui.so.4
#8  0x00007f3eabd1b273 in QImage::~QImage() () from /usr/lib64/qt4/libQtGui.so.4
#9  0x00007f3ea99602de in QSvgImage::~QSvgImage() () from /usr/lib64/qt4/libQtSvg.so.4
#10 0x00007f3ea997cbce in QSvgStructureNode::~QSvgStructureNode() () from /usr/lib64/qt4/libQtSvg.so.4
#11 0x00007f3ea997d313 in QSvgG::~QSvgG() () from /usr/lib64/qt4/libQtSvg.so.4
#12 0x00007f3ea997cbce in QSvgStructureNode::~QSvgStructureNode() () from /usr/lib64/qt4/libQtSvg.so.4
#13 0x00007f3ea997d313 in QSvgG::~QSvgG() () from /usr/lib64/qt4/libQtSvg.so.4
#14 0x00007f3ea997cbce in QSvgStructureNode::~QSvgStructureNode() () from /usr/lib64/qt4/libQtSvg.so.4
#15 0x00007f3ea997d313 in QSvgG::~QSvgG() () from /usr/lib64/qt4/libQtSvg.so.4
#16 0x00007f3ea997cbce in QSvgStructureNode::~QSvgStructureNode() () from /usr/lib64/qt4/libQtSvg.so.4
#17 0x00007f3ea997d313 in QSvgG::~QSvgG() () from /usr/lib64/qt4/libQtSvg.so.4
#18 0x00007f3ea997cbce in QSvgStructureNode::~QSvgStructureNode() () from /usr/lib64/qt4/libQtSvg.so.4
#19 0x00007f3ea9982fb9 in QSvgTinyDocument::~QSvgTinyDocument() () from /usr/lib64/qt4/libQtSvg.so.4
#20 0x00007f3ea99855c4 in QSvgRendererPrivate::~QSvgRendererPrivate() () from /usr/lib64/qt4/libQtSvg.so.4
#21 0x00007f3ead4786b6 in QObject::~QObject() () from /usr/lib64/qt4/libQtCore.so.4
#22 0x00007f3ea99844b9 in QSvgRenderer::~QSvgRenderer() () from /usr/lib64/qt4/libQtSvg.so.4
#23 0x00007f3ead474dc4 in QObjectPrivate::deleteChildren() () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007f3ead478680 in QObject::~QObject() () from /usr/lib64/qt4/libQtCore.so.4
#25 0x00007f3eadf4bc79 in Gwenview::SvgDocumentLoadedImpl::~SvgDocumentLoadedImpl() () from /usr/lib64/libgwenviewlib.so.4
#26 0x00007f3eadf4150e in Gwenview::Document::~Document() () from /usr/lib64/libgwenviewlib.so.4
#27 0x00007f3eadf41609 in Gwenview::Document::~Document() () from /usr/lib64/libgwenviewlib.so.4
#28 0x00007f3eadf44023 in Gwenview::DocumentFactory::~DocumentFactory() () from /usr/lib64/libgwenviewlib.so.4
#29 0x00007f3eaaf223f1 in __run_exit_handlers () from /lib64/libc.so.6
#30 0x00007f3eaaf22445 in exit () from /lib64/libc.so.6
#31 0x00007f3eaaf0c4c4 in __libc_start_main () from /lib64/libc.so.6
#32 0x000000000042a2b1 in _start ()

Reported using DrKonqi
Comment 1 Māris Nartišs 2012-08-24 09:21:10 UTC
Created attachment 73427 [details]
SVG file causing crash

This file has been generated by Qt (QuantumGIS) and edited in Inkscape.

Open this file in Gwenview, close window and observe crash.
Comment 2 Jekyll Wu 2012-08-24 12:33:24 UTC
I tried that attached svg file several times in Gentoo..  No crash for me.
Comment 3 Māris Nartišs 2012-08-25 05:42:00 UTC
(In reply to comment #2)
> I tried that attached svg file several times in Gentoo..  No crash for me.

KDE SC and Qt version? AMD64? Gwenview OpenGL animations enabled?

I'm running xorg-server-1.12.3 and nvidia-drivers-295.59. Still Gwenview is the only app crashing and thus I believe it's not nvidia fault this time.
Comment 4 Benni Hill 2012-12-07 22:45:34 UTC
I can confirm this.
It crashes only when OpenGL animations are enabled in gwenview.

Gwenview: 2.9.4, Qt: 4.8.3, AMD64 CPU with open source AMD graphics drivers


Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9440587780 (LWP 16409))]

Thread 3 (Thread 0x7f942ad41700 (LWP 16411)):
#0  0x00007f943cfec303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f94397b3d84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f94397b3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f943f40cc16 in QEventDispatcherGlib::processEvents (this=0x7f94240008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f943f3dd2bf in QEventLoop::processEvents (this=this@entry=0x7f942ad40dd0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f943f3dd548 in QEventLoop::exec (this=0x7f942ad40dd0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f943f2deb10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f943f3bd9af in QInotifyFileSystemWatcherEngine::run (this=0x1484800) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f943f2e1aec in QThreadPrivate::start (arg=0x1484800) at thread/qthread_unix.cpp:338
#9  0x00007f9439e76e9a in start_thread (arg=0x7f942ad41700) at pthread_create.c:308
#10 0x00007f943cff7cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f9429dc5700 (LWP 16412)):
#0  0x00007f943cfec303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f94397b3d84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f94397b3ea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f943f40cc16 in QEventDispatcherGlib::processEvents (this=0x7f941c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f943f3dd2bf in QEventLoop::processEvents (this=this@entry=0x7f9429dc4dd0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f943f3dd548 in QEventLoop::exec (this=0x7f9429dc4dd0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f943f2deb10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f943f3bd9af in QInotifyFileSystemWatcherEngine::run (this=0x14900b0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f943f2e1aec in QThreadPrivate::start (arg=0x14900b0) at thread/qthread_unix.cpp:338
#9  0x00007f9439e76e9a in start_thread (arg=0x7f9429dc5700) at pthread_create.c:308
#10 0x00007f943cff7cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f9440587780 (LWP 16409)):
[KCrash Handler]
#6  size (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qlist.h:98
#7  count (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qlist.h:280
#8  QImagePixmapCleanupHooks::executeImageHooks (key=31980326486018) at image/qimagepixmapcleanuphooks.cpp:128
#9  0x00007f943dd09434 in QImageData::~QImageData (this=0x2695590, __in_chrg=<optimized out>) at image/qimage.cpp:223
#10 0x00007f943dd094d3 in QImage::~QImage (this=0x2695548, __in_chrg=<optimized out>) at image/qimage.cpp:1283
#11 0x00007f943b997ea7 in ~QSvgImage (this=0x2695470, __in_chrg=<optimized out>) at qsvggraphics_p.h:106
#12 QSvgImage::~QSvgImage (this=0x2695470, __in_chrg=<optimized out>) at qsvggraphics_p.h:106
#13 0x00007f943b9b3d9e in qDeleteAll<QList<QSvgNode*>::const_iterator> (end=..., begin=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:322
#14 qDeleteAll<QList<QSvgNode*> > (c=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:330
#15 QSvgStructureNode::~QSvgStructureNode (this=0x2694d90, __in_chrg=<optimized out>) at qsvgstructure.cpp:64
#16 0x00007f943b9b45d3 in ~QSvgG (this=0x2694d90, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#17 QSvgG::~QSvgG (this=0x2694d90, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#18 0x00007f943b9b3d9e in qDeleteAll<QList<QSvgNode*>::const_iterator> (end=..., begin=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:322
#19 qDeleteAll<QList<QSvgNode*> > (c=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:330
#20 QSvgStructureNode::~QSvgStructureNode (this=0x21b9e90, __in_chrg=<optimized out>) at qsvgstructure.cpp:64
#21 0x00007f943b9b45d3 in ~QSvgG (this=0x21b9e90, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#22 QSvgG::~QSvgG (this=0x21b9e90, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#23 0x00007f943b9b3d9e in qDeleteAll<QList<QSvgNode*>::const_iterator> (end=..., begin=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:322
#24 qDeleteAll<QList<QSvgNode*> > (c=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:330
#25 QSvgStructureNode::~QSvgStructureNode (this=0x21b9d30, __in_chrg=<optimized out>) at qsvgstructure.cpp:64
#26 0x00007f943b9b45d3 in ~QSvgG (this=0x21b9d30, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#27 QSvgG::~QSvgG (this=0x21b9d30, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#28 0x00007f943b9b3d9e in qDeleteAll<QList<QSvgNode*>::const_iterator> (end=..., begin=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:322
#29 qDeleteAll<QList<QSvgNode*> > (c=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:330
#30 QSvgStructureNode::~QSvgStructureNode (this=0x21bcf60, __in_chrg=<optimized out>) at qsvgstructure.cpp:64
#31 0x00007f943b9b45d3 in ~QSvgG (this=0x21bcf60, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#32 QSvgG::~QSvgG (this=0x21bcf60, __in_chrg=<optimized out>) at qsvgstructure_p.h:86
#33 0x00007f943b9b3d9e in qDeleteAll<QList<QSvgNode*>::const_iterator> (end=..., begin=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:322
#34 qDeleteAll<QList<QSvgNode*> > (c=...) at ../../include/QtCore/../../src/corelib/tools/qalgorithms.h:330
#35 QSvgStructureNode::~QSvgStructureNode (this=0x18344b0, __in_chrg=<optimized out>) at qsvgstructure.cpp:64
#36 0x00007f943b9b9dc9 in QSvgTinyDocument::~QSvgTinyDocument (this=0x18344b0, __in_chrg=<optimized out>) at qsvgtinydocument.cpp:75
#37 0x00007f943b9bc2bd in ~QSvgRendererPrivate (this=0x1c5d5c0, __in_chrg=<optimized out>) at qsvgrenderer.cpp:115
#38 QSvgRendererPrivate::~QSvgRendererPrivate (this=0x1c5d5c0, __in_chrg=<optimized out>) at qsvgrenderer.cpp:116
#39 0x00007f943f3f4ffc in cleanup (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:62
#40 ~QScopedPointer (this=0x1cbf2b8, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:100
#41 QObject::~QObject (this=0x1cbf2b0, __in_chrg=<optimized out>) at kernel/qobject.cpp:817
#42 0x00007f943b9bb1b9 in QSvgRenderer::~QSvgRenderer (this=0x1cbf2b0, __in_chrg=<optimized out>) at qsvgrenderer.cpp:171
#43 0x00007f943f3f1182 in QObjectPrivate::deleteChildren (this=this@entry=0x21bd130) at kernel/qobject.cpp:1908
#44 0x00007f943f3f4fc6 in QObject::~QObject (this=0x218f330, __in_chrg=<optimized out>) at kernel/qobject.cpp:927
#45 0x00007f943fe82ab9 in ?? () from /usr/lib/libgwenviewlib.so.4
#46 0x00007f943fe7918d in Gwenview::Document::~Document() () from /usr/lib/libgwenviewlib.so.4
#47 0x00007f943fe79269 in Gwenview::Document::~Document() () from /usr/lib/libgwenviewlib.so.4
#48 0x00007f943fe7c313 in ?? () from /usr/lib/libgwenviewlib.so.4
#49 0x00007f943fe7b1b7 in Gwenview::DocumentFactory::~DocumentFactory() () from /usr/lib/libgwenviewlib.so.4
#50 0x00007f943cf3f901 in __run_exit_handlers (status=0, listp=0x7f943d2bc6a8 <__exit_funcs>, run_list_atexit=true) at exit.c:78
#51 0x00007f943cf3f985 in __GI_exit (status=<optimized out>) at exit.c:100
#52 0x00007f943cf25774 in __libc_start_main (main=0x426ee0, argc=1, ubp_av=0x7fff0feeb888, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff0feeb878) at libc-start.c:258
#53 0x0000000000427631 in _start ()
Comment 5 Robi 2013-01-03 00:38:02 UTC
I can confirm this bug, always reproducible with every SVG file I could find.
Application: gwenview (2.9.4) 
KDE Platform Version: 4.9.4 
Qt Version: 4.8.4
Operating System: Linux 3.6.11-gentoo x86_64 
Distribution (Platform): Gentoo Packages
Comment 6 S. Christian Collins 2013-02-23 02:00:51 UTC
Created attachment 77519 [details]
New crash information added by DrKonqi

gwenview (4.10.0) on KDE Platform 4.10.00 using Qt 4.8.2

This bug is happening on my system using KDE 4.10. Here is my system info:

OS: Kubuntu 12.04 64-bit w/ KDE SC 4.10.0 (from Kubuntu backports PPA)
Motherboard: ASRock X58 Extreme3 (Intel X58 chipset)
CPU: Intel Core i7 930 (2.8 GHz quad-core)
RAM: 12GB DDR3
Video: Dell NVIDIA GeForce 7800 GTX w/ 256 MB RAM (PCI Express)
Linux Kernel: 3.2.0-38-generic
NVIDIA video driver: 304.64
Screen Resolution: 1280 x 960

-- Backtrace (Reduced):
#6  size (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qlist.h:98
#7  count (this=0x0) at ../../include/QtCore/../../src/corelib/tools/qlist.h:280
#8  QImagePixmapCleanupHooks::executeImageHooks (key=1898375547067) at image/qimagepixmapcleanuphooks.cpp:128
#9  0x00007f0b2d333364 in QImageData::~QImageData (this=0x24b4d50, __in_chrg=<optimized out>) at image/qimage.cpp:223
#10 0x00007f0b2d333403 in QImage::~QImage (this=0x24b2c48, __in_chrg=<optimized out>) at image/qimage.cpp:1283
Comment 7 Christoph Feck 2013-08-13 21:43:39 UTC
*** Bug 323470 has been marked as a duplicate of this bug. ***
Comment 8 Aurelien Gateau 2013-08-14 14:15:52 UTC
I can't reproduce it here, neither with GL nor with software animations on. I am trying by starting Gwenview directly with the attached svg and closing. Is there anything else I need to do?
Comment 9 S. Christian Collins 2013-08-19 18:03:24 UTC
I am unable to reproduce this bug since upgrading to KDE 4.11. I was experiencing it previously with the 4.10 series.
Comment 10 Jekyll Wu 2013-08-20 03:51:48 UTC
Thanks for the feedback, then close this report for now.