Summary: | Kolourpaint crashes on startup or selecting a tool when using Qt4.5 and -native(default) or -opengl graphicssystem ( QX11PaintEngine::drawPixmap, kpPixmapFX::ensureNoAlphaChannel ) (works OK with raster) | ||
---|---|---|---|
Product: | [Applications] kolourpaint | Reporter: | Öyvind Saether <oyvinds> |
Component: | general | Assignee: | kolourpaint-support |
Status: | RESOLVED WORKSFORME | ||
Severity: | crash | CC: | 4ernov, admin, alpha.super-one, andresbajotierra, bugzilla.kde, c487746, damian01w, dazjorz, erik.b.andersen, hirakendu, hugo_alobo, jimage, karl, kevin.kofler, knap, linuxhippy, nadavkav, ronisbr, ruchir.brahmbhatt, sergio.pe.facebook+kde, smal.root, thurston_dang, vtomasr5, zayed.alsaidi |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: | Valgrind output for kolourpaint |
Description
Öyvind Saether
2009-02-09 23:10:36 UTC
same here, crashes at random times during use *** Bug 185693 has been marked as a duplicate of this bug. *** If you run kolourpaint as "kolourpaint -graphicssystem native" (from Konsole) does the application crashes too ? This may be related to the new Qt4.5 graphics system (raster engine enabled by default in some distribution packages) yes laptop:~# kolourpaint -graphicssystem native Starting KolourPaint on a 24-bit screen... KCrash: Application 'kolourpaint' crashing... sock_file=/root/.kde4/socket-laptop/kdeinit4__0 laptop:~# --graphicssystem <system> use a different graphics system instead of the default one, options are raster and opengl (experimental) laptop:~# kolourpaint -graphicssystem opengl using visual class 4, id 2d Starting KolourPaint on a 24-bit screen... using visual class 4, id 2d kolourpaint(6282): Pixmap has alpha channel. See the .h doc for kpPixmapFX::ensureNoAlphaChannel() to fix this. kolourpaint(6282): Pixmap has alpha channel. See the .h doc for kpPixmapFX::ensureNoAlphaChannel() to fix this. ASSERT: "QPixmap (1, 1).depth () == QPixmap::defaultDepth ()" in file ../../kolourpaint/pixmapfx/kpPixmapFX_MaskOps.cpp, line 189 KCrash: Application 'kolourpaint' crashing... sock_file=/root/.kde4/socket-laptop/kdeinit4__0 laptop:~# kolourpaint -graphicssystem raster Starting KolourPaint on a 24-bit screen... ASSERT: "QPixmap (1, 1).depth () == QPixmap::defaultDepth ()" in file ../../kolourpaint/pixmapfx/kpPixmapFX_MaskOps.cpp, line 189 KCrash: Application 'kolourpaint' crashing... sock_file=/root/.kde4/socket-laptop/kdeinit4__0 laptop:~# opengl is known not to work correctly yet, its native or raster. and qt built without raster support here still kolourpaint crashes. The -graphicssystem apperas to be irrellevant. All FAiL $ kolourpaint -graphicssystem native Starting KolourPaint on a 24-bit screen... kolourpaint(4836) KStyle::standardIconImplementation: ################### 26 kolourpaint(4836) KStyle::standardIconImplementation: ################### 26 kolourpaint(4836) KStyle::standardIconImplementation: ################### 26 kolourpaint(4836) KStyle::standardIconImplementation: ################### 26 pure virtual method called terminate called without an active exception KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = kolourpaint path = <unknown> pid = 4836 sock_file=/home/oyvinds//.kdelive/socket-deadbabecafe/kdeinit4__0 $ kolourpaint -graphicssystem raster Starting KolourPaint on a 24-bit screen... ASSERT: "QPixmap (1, 1).depth () == QPixmap::defaultDepth ()" in file /tmp/portage/kde-base/kolourpaint-9999/work/kolourpaint-9999/kolourpaint/pixmapfx/kpPixmapFX_MaskOps.cpp, line 189 KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = kolourpaint path = <unknown> pid = 4983 sock_file=/home/oyvinds//.kdelive/socket-deadbabecafe/kdeinit4__0 $ kolourpaint -graphicssystem opengl Unable to load graphicssystem "opengl" Starting KolourPaint on a 24-bit screen... Unable to load graphicssystem "opengl" kolourpaint(5083) KStyle::standardIconImplementation: ################### 26 kolourpaint(5083) KStyle::standardIconImplementation: ################### 26 kolourpaint(5083) KStyle::standardIconImplementation: ################### 26 kolourpaint(5083) KStyle::standardIconImplementation: ################### 26 KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = kolourpaint path = <unknown> pid = 5083 sock_file=/home/oyvinds//.kdelive/socket-deadbabecafe/kdeinit4__0 I can add the backtraces of each crash if those would somehow be helpfull. *** Bug 186026 has been marked as a duplicate of this bug. *** *** Bug 185703 has been marked as a duplicate of this bug. *** KolourPaint Version 4.2.65 (KDE 4.2.65 (KDE 4.3 >= 20090226)) Using KDE 4.2.65 (KDE 4.2.65 (KDE 4.3 >= 20090226)) QT 4.5.0. "kolourpaint -graphicssystem raster" no longer crashes. -graphicssystem native and -graphicssystem raster and opengl still crash. is it possible to get kde ver 4.2.65 binaries for debian ? I can confirm that it crashed when using the default graphics system here using Qt4.5.0 + KDE4.3trunk(today-build). However it doesn't crash with "raster" graphics system. i confirm that : kolourpaint -graphicssystem raster no longer crashes with qt 4.5 and kde 4.2.1 (debian experimental) it also works (very slow) with opengl option. but not with the default (what every it is) here is a new crash log from the updated system packages (when starting in default mode) Application: KolourPaint (kolourpaint), signal SIGSEGV 0x00007f8f6b8cc8a0 in __nanosleep_nocancel () from /lib/libc.so.6 Current language: auto; currently c [Current thread is 1 (Thread 0x7f8f6efdc700 (LWP 5722))] Thread 1 (Thread 0x7f8f6efdc700 (LWP 5722)): [KCrash Handler] #5 0x0000000000000000 in ?? () #6 0x00007f8f6c4cc1a0 in QX11PaintEngine::drawPixmap (this=<value optimized out>, r=<value optimized out>, px=<value optimized out>, _sr=<value optimized out>) at painting/qpaintengine_x11.cpp:1886 #7 0x00007f8f6c40b3a8 in QPainter::drawPixmap (this=0x7fff77113bf0, r=@0x7fff77113b30, pm=@0x7fff77113bd0, sr=@0x7fff77113b50) at painting/qpainter.cpp:5354 #8 0x000000000047c687 in kpPixmapFX::ensureNoAlphaChannel (destPixmapPtr=0x7fff77113c70) at /usr/include/qt4/QtGui/qpainter.h:745 #9 0x000000000047ae33 in kpPixmapFX::convertToPixmap (image=@0x7fff77113d30, pretty=80, wali=@0x7fff77113ce0) at ../../kolourpaint/pixmapfx/kpPixmapFX_FormatConversion.cpp:255 #10 0x0000000000447618 in kpEffectInvert::applyEffect (destPixmapPtr=0x7fff77113e00, channels=<value optimized out>) at ../../kolourpaint/imagelib/effects/kpEffectInvert.cpp:47 #11 0x00000000004ad56f in kpToolWidgetBase::paintEvent (this=0x1b2cf40, e=<value optimized out>) at ../../kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:670 #12 0x00007f8f6c337526 in QWidget::event (this=0x1b2cf40, event=0x7fff77114590) at kernel/qwidget.cpp:7654 #13 0x00000000004ace07 in kpToolWidgetBase::event (this=0x1b2cf40, e=0x7fff77114590) at ../../kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:607 #14 0x00007f8f6c2e65bd in QApplicationPrivate::notify_helper (this=0x178a7a0, receiver=0x1b2cf40, e=0x7fff77114590) at kernel/qapplication.cpp:4084 #15 0x00007f8f6c2ee7aa in QApplication::notify (this=0x7fff771174d0, receiver=0x1b2cf40, e=0x7fff77114590) at kernel/qapplication.cpp:4049 #16 0x00007f8f6da9d11b in KApplication::notify (this=0x7fff771174d0, receiver=0x1b2cf40, event=0x7fff77114590) at ../../kdeui/kernel/kapplication.cpp:307 #17 0x00007f8f6cea0c4c in QCoreApplication::notifyInternal (this=0x7fff771174d0, receiver=0x1b2cf40, event=0x7fff77114590) at kernel/qcoreapplication.cpp:602 #18 0x00007f8f6c33e7e5 in QWidgetPrivate::drawWidget (this=0x1b33a30, pdev=0x18217d8, rgn=@0x7fff771147c0, offset=@0x7fff771147b0, flags=4, sharedPainter=0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5046 #19 0x00007f8f6c33ef57 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=0, rgn=@0x7fff771148b0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5156 #20 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=7, rgn=@0x7fff771149a0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #21 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=8, rgn=@0x7fff77114a90, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #22 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=9, rgn=@0x7fff77114b80, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #23 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=10, rgn=@0x7fff77114c70, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #24 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=11, rgn=@0x7fff77114d60, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #25 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=12, rgn=@0x7fff77114e50, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #26 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=13, rgn=@0x7fff77114f40, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #27 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=14, rgn=@0x7fff77115030, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #28 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=15, rgn=@0x7fff77115120, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #29 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=16, rgn=@0x7fff77115210, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #30 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=17, rgn=@0x7fff77115300, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #31 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=18, rgn=@0x7fff771153f0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #32 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=19, rgn=@0x7fff771154e0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #33 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=20, rgn=@0x7fff771155d0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #34 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=21, rgn=@0x7fff771156c0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #35 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=22, rgn=@0x7fff771157b0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #36 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=23, rgn=@0x7fff771158a0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #37 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=24, rgn=@0x7fff77115990, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #38 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ca50, pdev=0x18217d8, siblings=@0x1b2ca68, index=25, rgn=@0x7fff77115ca0, offset=@0x7fff77115c90, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #39 0x00007f8f6c33e457 in QWidgetPrivate::drawWidget (this=0x1b2ca50, pdev=0x18217d8, rgn=@0x7fff77115ca0, offset=@0x7fff77115c90, flags=4, sharedPainter=0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5095 #40 0x00007f8f6c33ef57 in QWidgetPrivate::paintSiblingsRecursive (this=0x1b2ddb0, pdev=0x18217d8, siblings=@0x1b2ddc8, index=6, rgn=@0x7fff77115fb0, offset=@0x7fff77115fa0, flags=4, sharedPainter= 0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5156 #41 0x00007f8f6c33e457 in QWidgetPrivate::drawWidget (this=0x1b2ddb0, pdev=0x18217d8, rgn=@0x7fff77115fb0, offset=@0x7fff77115fa0, flags=4, sharedPainter=0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5095 #42 0x00007f8f6c33ef57 in QWidgetPrivate::paintSiblingsRecursive (this=0x1820c00, pdev=0x18217d8, siblings=@0x1820c18, index=42, rgn=@0x7fff771160a0, offset=@0x182f354, flags=4, sharedPainter=0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5156 #43 0x00007f8f6c33ee66 in QWidgetPrivate::paintSiblingsRecursive (this=0x1820c00, pdev=0x18217d8, siblings=@0x1820c18, index=43, rgn=@0x7fff77116630, offset=@0x182f354, flags=4, sharedPainter=0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5147 #44 0x00007f8f6c33e457 in QWidgetPrivate::drawWidget (this=0x1820c00, pdev=0x18217d8, rgn=@0x7fff77116630, offset=@0x182f354, flags=4, sharedPainter=0x0, backingStore=0x182f310) at kernel/qwidget.cpp:5095 #45 0x00007f8f6c4e140a in QWidgetBackingStore::sync (this=0x182f310) at painting/qbackingstore.cpp:1266 #46 0x00007f8f6c4e1712 in QWidgetBackingStore::sync (this=0x182f310, exposedWidget=0x1837880, exposedRegion=@0x7fff771168a0) at painting/qbackingstore.cpp:1073 #47 0x00007f8f6c3464fa in QETWidget::translatePaintEvent (this=0x1837880, event=<value optimized out>) at kernel/qapplication_x11.cpp:5125 #48 0x00007f8f6c3569a3 in QApplication::x11ProcessEvent (this=0x7fff771174d0, event=0x7fff77117110) at kernel/qapplication_x11.cpp:3443 #49 0x00007f8f6c37eee4 in x11EventSourceDispatch (s=0x178e020, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #50 0x00007f8f6849faab in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #51 0x00007f8f684a326d in ?? () from /usr/lib/libglib-2.0.so.0 #52 0x00007f8f684a342b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #53 0x00007f8f6ceca29f in QEventDispatcherGlib::processEvents (this=0x1787390, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:323 #54 0x00007f8f6c37e68f in QGuiEventDispatcherGlib::processEvents (this=0x1b91e30, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202 #55 0x00007f8f6ce9f4f2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1997632512}) at kernel/qeventloop.cpp:149 #56 0x00007f8f6ce9f8bd in QEventLoop::exec (this=0x7fff77117440, flags={i = 1997632592}) at kernel/qeventloop.cpp:200 #57 0x00007f8f6cea1b84 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:880 #58 0x000000000045248d in main (argc=1, argv=0x7fff771179c8) at ../../kolourpaint/kolourpaint.cpp:125 *** Bug 186538 has been marked as a duplicate of this bug. *** It still crashes in kde 4.2.1. I maximized kolourpaint and got following backtrace after crash. Application: KolourPaint (kolourpaint), signal SIGSEGV [?1034h[Thread debugging using libthread_db enabled] [Current thread is 1 (Thread 0xb5bcd700 (LWP 13313))] Thread 1 (Thread 0xb5bcd700 (LWP 13313)): [KCrash Handler] #6 0xffff0100 in ?? () #7 0xb6912796 in QX11PaintEngine::drawPixmap (this=0x8386910, r=@0xbfb2a050, px=@0xbfb2a1c8, _sr=@0xbfb2a030) at painting/qpaintengine_x11.cpp:1886 #8 0xb6846966 in QPainter::drawPixmap (this=0xbfb2a1d4, r=@0xbfb2a160, pm=@0xbfb2a1c8, sr=@0xbfb2a180) at painting/qpainter.cpp:5354 #9 0x080c006b in kpPixmapFX::ensureNoAlphaChannel (destPixmapPtr=0xbfb2a218) at /usr/include/QtGui/qpainter.h:745 #10 0x080be8b1 in kpPixmapFX::convertToPixmap (image=@0xbfb2a280, pretty=false, wali=@0xbfb2a25c) at /usr/src/debug/kdegraphics-4.2.1/kolourpaint/pixmapfx/kpPixmapFX_FormatConversion.cpp:255 #11 0x0808a44b in kpEffectInvert::applyEffect (destPixmapPtr=0xbfb2a354, channels=7) at /usr/src/debug/kdegraphics-4.2.1/kolourpaint/imagelib/effects/kpEffectInvert.cpp:47 #12 0x080f2f69 in kpToolWidgetBase::paintEvent (this=0x836f9a8, e=0xbfb2a864) at /usr/src/debug/kdegraphics-4.2.1/kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:670 #13 0xb67658ce in QWidget::event (this=0x836f9a8, event=0xbfb2a864) at kernel/qwidget.cpp:7654 #14 0x080f2866 in kpToolWidgetBase::event (this=0x836f9a8, e=0xbfb2a864) at /usr/src/debug/kdegraphics-4.2.1/kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:607 #15 0xb670eeec in QApplicationPrivate::notify_helper (this=0x813aea8, receiver=0x836f9a8, e=0xbfb2a864) at kernel/qapplication.cpp:4084 #16 0xb6717292 in QApplication::notify (this=0xbfb2c6b4, receiver=0x836f9a8, e=0xbfb2a864) at kernel/qapplication.cpp:4049 #17 0xb781aa3d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #18 0xb725e9db in QCoreApplication::notifyInternal (this=0xbfb2c6b4, receiver=0x836f9a8, event=0xbfb2a864) at kernel/qcoreapplication.cpp:602 #19 0xb6719ffe in QCoreApplication::sendSpontaneousEvent (receiver=0x836f9a8, event=0x83bef48) at ../../src/corelib/kernel/qcoreapplication.h:216 #20 0xb676d699 in QWidgetPrivate::drawWidget (this=0x8370728, pdev=0x81dade4, rgn=@0xbfb2a9c4, offset=@0xbfb2a9bc, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5046 #21 0xb676de3e in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=5, rgn=@0xbfb2aa54, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5156 #22 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=7, rgn=@0xbfb2aae4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #23 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=8, rgn=@0xbfb2ab74, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #24 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=9, rgn=@0xbfb2ac04, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #25 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=10, rgn=@0xbfb2ac94, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #26 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=11, rgn=@0xbfb2ad24, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #27 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=12, rgn=@0xbfb2adb4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #28 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=13, rgn=@0xbfb2ae44, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #29 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=14, rgn=@0xbfb2aed4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #30 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=15, rgn=@0xbfb2af64, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #31 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=16, rgn=@0xbfb2aff4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #32 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=17, rgn=@0xbfb2b084, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #33 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=18, rgn=@0xbfb2b114, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #34 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=19, rgn=@0xbfb2b1a4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #35 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=20, rgn=@0xbfb2b234, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #36 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=21, rgn=@0xbfb2b2c4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #37 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=22, rgn=@0xbfb2b354, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #38 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=23, rgn=@0xbfb2b3e4, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #39 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=24, rgn=@0xbfb2b474, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #40 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8359dc0, pdev=0x81dade4, siblings=@0x8359dcc, index=25, rgn=@0xbfb2b654, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #41 0xb676d28a in QWidgetPrivate::drawWidget (this=0x8359dc0, pdev=0x81dade4, rgn=@0xbfb2b654, offset=@0xbfb2b64c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5095 #42 0xb676de3e in QWidgetPrivate::paintSiblingsRecursive (this=0x83590c8, pdev=0x81dade4, siblings=@0x83590d4, index=6, rgn=@0xbfb2b834, offset=@0xbfb2b82c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5156 #43 0xb676d28a in QWidgetPrivate::drawWidget (this=0x83590c8, pdev=0x81dade4, rgn=@0xbfb2b834, offset=@0xbfb2b82c, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5095 #44 0xb676de3e in QWidgetPrivate::paintSiblingsRecursive (this=0x8204680, pdev=0x81dade4, siblings=@0x820468c, index=42, rgn=@0xbfb2b8c4, offset=@0x8205a34, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5156 #45 0xb676dd54 in QWidgetPrivate::paintSiblingsRecursive (this=0x8204680, pdev=0x81dade4, siblings=@0x820468c, index=43, rgn=@0xbfb2bb78, offset=@0x8205a34, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5147 #46 0xb676d28a in QWidgetPrivate::drawWidget (this=0x8204680, pdev=0x81dade4, rgn=@0xbfb2bb78, offset=@0x8205a34, flags=4, sharedPainter=0x0, backingStore=0x8205a10) at kernel/qwidget.cpp:5095 #47 0xb692923a in QWidgetBackingStore::sync (this=0x8205a10) at painting/qbackingstore.cpp:1266 #48 0xb675db76 in QWidgetPrivate::syncBackingStore (this=0x8204680) at kernel/qwidget.cpp:1603 #49 0xb67770de in QETWidget::translateConfigEvent (this=0x8203870, event=0xbfb2c3dc) at kernel/qapplication_x11.cpp:5289 #50 0xb6785198 in QApplication::x11ProcessEvent (this=0xbfb2c6b4, event=0xbfb2c3dc) at kernel/qapplication_x11.cpp:3446 #51 0xb67af3ca in x11EventSourceDispatch (s=0x813dc98, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #52 0xb5e569a8 in IA__g_main_context_dispatch (context=0x813c8a0) at gmain.c:2144 #53 0xb5e5a063 in g_main_context_iterate (context=0x813c8a0, block=1, dispatch=1, self=0x8138e80) at gmain.c:2778 #54 0xb5e5a221 in IA__g_main_context_iteration (context=0x813c8a0, may_block=1) at gmain.c:2841 #55 0xb728a428 in QEventDispatcherGlib::processEvents (this=0x813ae88, flags={i = -1078803048}) at kernel/qeventdispatcher_glib.cpp:323 #56 0xb67aeac5 in QGuiEventDispatcherGlib::processEvents (this=0x813ae88, flags={i = -1078803000}) at kernel/qguieventdispatcher_glib.cpp:202 #57 0xb725cffa in QEventLoop::processEvents (this=0xbfb2c640, flags={i = -1078802936}) at kernel/qeventloop.cpp:149 #58 0xb725d43a in QEventLoop::exec (this=0xbfb2c640, flags={i = -1078802872}) at kernel/qeventloop.cpp:200 #59 0xb725f8e9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:880 #60 0xb670ed67 in QApplication::exec () at kernel/qapplication.cpp:3553 #61 0x0809518f in main (argc=1, argv=0xbfb2c864) at /usr/src/debug/kdegraphics-4.2.1/kolourpaint/kolourpaint.cpp:125 *** Bug 187184 has been marked as a duplicate of this bug. *** I can also confirm this bug and with -graphicssystem raster option I wasn't able to see any more crashed. My system: KDE 4.2.1 QT 4.5.0 Encountered the same bug here. -graphicssystem raster fixed it for me also. The crash only occurs if: 1) the window's height is >= 320 (horizontal size appears irrelevant), and 2) a drawing tool is selected (i.e. not select or colour picker). KDE/KolourPaint 4.2.1 Qt 4.5.0-3 *** Bug 187759 has been marked as a duplicate of this bug. *** 1) It about time to change this bug from "UNCONFIRMED" to "NEW" or perhaps "ASSIGNED"? 2) The next 4.2.x and KDE SVN could use kolourpaint -graphicssystem raster as default. That would not fix the bug, but it would be an acceptable workaround until the bug is fixed. I now use this in my .bashrc: alias kolourpaint='kolourpaint -graphicssystem raster' Without this alias, using Version 4.2.66 (KDE 4.2.66 (KDE 4.3 >= 20090310)) compiled 2009-03-18: Application: KolourPaint (kolourpaint), signal SIGSEGV Thread 1 (Thread 0xb60016d0 (LWP 11864)): [KCrash Handler] #6 0x00000100 in ?? () #7 0xb6cc098a in QX11PaintEngine::drawPixmap (this=0x81bf988, r=@0xbfcb4710, px=@0xbfcb4808, _sr=@0xbfcb46f0) at painting/qpaintengine_x11.cpp:1886 #8 0xb6bfe14b in QPainter::drawPixmap (this=0xbfcb4814, p=@0xbfcb47d0, pm=@0xbfcb4808) at painting/qpainter.cpp:5235 #9 0x080c0e45 in kpPixmapFX::ensureNoAlphaChannel (destPixmapPtr=0xbfcb4858) at /usr/include/qt4/QtGui/qpainter.h:804 #10 0x080bf6d1 in kpPixmapFX::convertToPixmap (image=@0xbfcb48c0, pretty=false, wali=@0xbfcb489c) at /tmp/portage/kde-base/kolourpaint-9999/work/kolourpaint-9999/kolourpaint/pixmapfx/kpPixmapFX_FormatConversion.cpp:255 #11 0x0808a8cb in kpEffectInvert::applyEffect (destPixmapPtr=0xbfcb4968, channels=7) at /tmp/portage/kde-base/kolourpaint-9999/work/kolourpaint-9999/kolourpaint/imagelib/effects/kpEffectInvert.cpp:47 #12 0x080f37ab in kpToolWidgetBase::paintEvent (this=0x84e0330, e=0xbfcb4e54) at /tmp/portage/kde-base/kolourpaint-9999/work/kolourpaint-9999/kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:670 #13 0xb6b37e8e in QWidget::event (this=0x84e0330, event=0xbfcb4e54) at kernel/qwidget.cpp:7654 #14 0x080f2df3 in kpToolWidgetBase::event (this=0x84e0330, e=0xbfcb4e54) at /tmp/portage/kde-base/kolourpaint-9999/work/kolourpaint-9999/kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:607 #15 0xb6ae6494 in QApplicationPrivate::notify_helper (this=0x812ebb8, receiver=0x84e0330, e=0xbfcb4e54) at kernel/qapplication.cpp:4084 #16 0xb6aedfb2 in QApplication::notify (this=0xbfcb6c04, receiver=0x84e0330, e=0xbfcb4e54) at kernel/qapplication.cpp:4049 #17 0xb795e05d in KApplication::notify (this=0xbfcb6c04, receiver=0x84e0330, event=0xbfcb4e54) at /tmp/portage/kde-base/kdelibs-9999/work/kdelibs-9999/kdeui/kernel/kapplication.cpp:307 #18 0xb742770a in QCoreApplication::notifyInternal (this=0xbfcb6c04, receiver=0x84e0330, event=0xbfcb4e54) at kernel/qcoreapplication.cpp:598 #19 0xb6af025e in QCoreApplication::sendSpontaneousEvent (receiver=0x84e0330, event=0x85277b8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216 #20 0xb6b3b3d0 in QWidgetPrivate::drawWidget (this=0x84e1fa8, pdev=0x81a8d3c, rgn=@0xbfcb4fb4, offset=@0xbfcb4fac, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5046 #21 0xb6b3bb07 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=2, rgn=@0xbfcb5044, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5156 #22 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=3, rgn=@0xbfcb50d4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #23 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=7, rgn=@0xbfcb5164, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #24 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=8, rgn=@0xbfcb51f4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #25 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=9, rgn=@0xbfcb5284, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #26 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=10, rgn=@0xbfcb5314, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #27 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=11, rgn=@0xbfcb53a4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #28 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=12, rgn=@0xbfcb5434, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #29 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=13, rgn=@0xbfcb54c4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #30 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=14, rgn=@0xbfcb5554, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #31 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=15, rgn=@0xbfcb55e4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #32 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=16, rgn=@0xbfcb5674, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #33 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=17, rgn=@0xbfcb5704, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #34 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=18, rgn=@0xbfcb5794, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #35 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=19, rgn=@0xbfcb5824, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #36 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=20, rgn=@0xbfcb58b4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #37 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=21, rgn=@0xbfcb5944, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #38 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=22, rgn=@0xbfcb59d4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #39 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=23, rgn=@0xbfcb5a64, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #40 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=24, rgn=@0xbfcb5af4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #41 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce008, pdev=0x81a8d3c, siblings=@0x84ce014, index=25, rgn=@0xbfcb5cf4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #42 0xb6b3afe8 in QWidgetPrivate::drawWidget (this=0x84ce008, pdev=0x81a8d3c, rgn=@0xbfcb5cf4, offset=@0xbfcb5cec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5095 #43 0xb6b3bb07 in QWidgetPrivate::paintSiblingsRecursive (this=0x84ce1d0, pdev=0x81a8d3c, siblings=@0x84ce1dc, index=6, rgn=@0xbfcb5ef4, offset=@0xbfcb5eec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5156 #44 0xb6b3afe8 in QWidgetPrivate::drawWidget (this=0x84ce1d0, pdev=0x81a8d3c, rgn=@0xbfcb5ef4, offset=@0xbfcb5eec, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5095 #45 0xb6b3bb07 in QWidgetPrivate::paintSiblingsRecursive (this=0x81a76b8, pdev=0x81a8d3c, siblings=@0x81a76c4, index=42, rgn=@0xbfcb5f84, offset=@0x81a8d2c, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5156 #46 0xb6b3ba34 in QWidgetPrivate::paintSiblingsRecursive (this=0x81a76b8, pdev=0x81a8d3c, siblings=@0x81a76c4, index=43, rgn=@0xbfcb62e0, offset=@0x81a8d2c, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5147 #47 0xb6b3afe8 in QWidgetPrivate::drawWidget (this=0x81a76b8, pdev=0x81a8d3c, rgn=@0xbfcb62e0, offset=@0x81a8d2c, flags=4, sharedPainter=0x0, backingStore=0x81a8d08) at kernel/qwidget.cpp:5095 #48 0xb6cd2b52 in QWidgetBackingStore::sync (this=0x81a8d08) at painting/qbackingstore.cpp:1266 #49 0xb6cd2dfd in QWidgetBackingStore::sync (this=0x81a8d08, exposedWidget=0x8164078, exposedRegion=@0xbfcb6494) at painting/qbackingstore.cpp:1073 #50 0xb6b2c972 in QWidgetPrivate::syncBackingStore (this=0x81a76b8, region=@0xbfcb6494) at kernel/qwidget.cpp:1612 #51 0xb6b4302b in QETWidget::translatePaintEvent (this=0x8164078, event=0xbfcb693c) at kernel/qapplication_x11.cpp:5125 #52 0xb6b4d90d in QApplication::x11ProcessEvent (this=0xbfcb6c04, event=0xbfcb693c) at kernel/qapplication_x11.cpp:3443 #53 0xb6b75982 in x11EventSourceDispatch (s=0x8131d68, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #54 0xb622a7d0 in IA__g_main_context_dispatch (context=0x8130ea0) at gmain.c:1814 #55 0xb622dd6b in g_main_context_iterate (context=0x8130ea0, block=1, dispatch=1, self=0x812eda0) at gmain.c:2448 #56 0xb622dee8 in IA__g_main_context_iteration (context=0x8130ea0, may_block=1) at gmain.c:2511 #57 0xb744ef58 in QEventDispatcherGlib::processEvents (this=0x812eb78, flags={i = -1077187848}) at kernel/qeventdispatcher_glib.cpp:323 #58 0xb6b75175 in QGuiEventDispatcherGlib::processEvents (this=0x812eb78, flags={i = -1077187800}) at kernel/qguieventdispatcher_glib.cpp:202 #59 0xb7425eda in QEventLoop::processEvents (this=0xbfcb6b90, flags={i = -1077187736}) at kernel/qeventloop.cpp:149 #60 0xb7426092 in QEventLoop::exec (this=0xbfcb6b90, flags={i = -1077187688}) at kernel/qeventloop.cpp:196 #61 0xb7428281 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:880 #62 0xb6ae6307 in QApplication::exec () at kernel/qapplication.cpp:3553 #63 0x08095e7d in main (argc=1, argv=0xbfcb6db4) at /tmp/portage/kde-base/kolourpaint-9999/work/kolourpaint-9999/kolourpaint/kolourpaint.cpp:125 The "-graphicssystem raster" argument still crashes kolourpaint on launch. OS: Arch Linux QT: 4.5 KDE4: 4.2.1 (from KDEMOD) KolourPaint: 4.2.1 kolourpaint -graphicssystem raster Xlib: extension "Generic Event Extension" missing on display ":0.0". Xlib: extension "Generic Event Extension" missing on display ":0.0". Xlib: extension "Generic Event Extension" missing on display ":0.0". Xlib: extension "Generic Event Extension" missing on display ":0.0". Starting KolourPaint on a 24-bit screen... Xlib: extension "Generic Event Extension" missing on display ":0.0". Xlib: extension "Generic Event Extension" missing on display ":0.0". Xlib: extension "Generic Event Extension" missing on display ":0.0". Xlib: extension "Generic Event Extension" missing on display ":0.0". ASSERT: "QPixmap (1, 1).depth () == QPixmap::defaultDepth ()" in file /home/jan/ScratchPad/kdemod-new-makepkg/work/core/kdegraphics/src/kdegraphics-4.2.1/kolourpaint/pixmapfx/kpPixmapFX_MaskOps.cpp, line 189 KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = kolourpaint path = <unknown> pid = 8550 sock_file=/home/hugo/.kde4/socket-ArchLinuxPC/kdeinit4__0 I see this problem too, please at least assign this bug. Would be great if it could be fixed in kde-4.2.2, after slipping into kde-4.2. Today it crashed in other way. I started from command "kolourpaint -graphicssystem raster". Pressed ctrl+o to open file and it crashed with following backtrace. Application: KolourPaint (kolourpaint), signal SIGSEGV [Current thread is 1 (Thread 0xb5c87700 (LWP 18051))] Thread 1 (Thread 0xb5c87700 (LWP 18051)): [KCrash Handler] #6 0xb67c1af1 in comp_func_Source<QSSEIntrinsics> (dest=0x8618b50, src=0xb3b6a000, length=96, const_alpha=4294967295) at /usr/lib/gcc/i586-suse-linux/4.3/include/mmintrin.h:63 #7 0xb67c1b9e in qt_blend_rgb32_on_rgb32_sse (destPixels=0x8618b50 "", dbpl=384, srcPixels=0xb3b6a000 <Address 0xb3b6a000 out of bounds>, sbpl=384, w=96, h=68, const_alpha=0) at painting/qdrawhelper_sse.cpp:139 #8 0xb6961052 in QRasterPaintEnginePrivate::drawImage (this=0x8500e18, pt=@0xbf8e66c8, img=@0xbf8e680c, func=0xb67c1b60 <qt_blend_rgb32_on_rgb32_sse(unsigned char*, int, unsigned char const*, int, int, int, int)>, clip=@0x8500f7c, alpha=0, sr=@0xbf8e66b8) at painting/qpaintengine_raster.cpp:1079 #9 0xb696a906 in QRasterPaintEngine::drawImage (this=0x85fe788, r=@0xbf8e6970, img=@0xbf8e680c, sr=@0xbf8e6950) at painting/qpaintengine_raster.cpp:2573 #10 0xb6971657 in QRasterPaintEngine::drawPixmap (this=0x85fe788, r=@0xbf8e6970, pixmap=@0x84a8490, sr=@0xbf8e6950) at painting/qpaintengine_raster.cpp:2399 #11 0xb690044f in QPainter::drawPixmap (this=0xbf8e6adc, r=@0xbf8e6a38, pm=@0x84a8490, sr=@0xbf8e6a58) at painting/qpainter.cpp:5311 #12 0xb7fe3b5b in KImageFilePreview::KImageFilePreviewPrivate::_k_slotStepAnimation(int) () from /usr/lib/libkio.so.5 #13 0xb7fe3bf7 in KImageFilePreview::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkio.so.5 #14 0xb732ec88 in QMetaObject::activate (sender=0x84a6e48, from_signal_index=5, to_signal_index=5, argv=0xbf8e6bec) at kernel/qobject.cpp:3069 #15 0xb7330412 in QMetaObject::activate (sender=0x84a6e48, m=0xb740ef14, local_signal_index=1, argv=0xbf8e6bec) at kernel/qobject.cpp:3143 #16 0xb7368553 in QTimeLine::frameChanged (this=0x84a6e48, _t1=20) at .moc/release-shared/moc_qtimeline.cpp:158 #17 0xb727a887 in QTimeLinePrivate::setCurrentTime (this=0x84a8570, msecs=42) at tools/qtimeline.cpp:171 #18 0xb732912f in QObject::event (this=0x84a6e48, e=0xbf8e7080) at kernel/qobject.cpp:1082 #19 0xb67c8eec in QApplicationPrivate::notify_helper (this=0x813b100, receiver=0x84a6e48, e=0xbf8e7080) at kernel/qapplication.cpp:4084 #20 0xb67d11ae in QApplication::notify (this=0xbf8e8754, receiver=0x84a6e48, e=0xbf8e7080) at kernel/qapplication.cpp:3631 #21 0xb78d4a3d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #22 0xb73189db in QCoreApplication::notifyInternal (this=0xbf8e8754, receiver=0x84a6e48, event=0xbf8e7080) at kernel/qcoreapplication.cpp:602 #23 0xb7348026 in QTimerInfoList::activateTimers (this=0x813e134) at kernel/qcoreapplication.h:213 #24 0xb73444d0 in timerSourceDispatch (source=0x813e100) at kernel/qeventdispatcher_glib.cpp:164 #25 0xb5f10d88 in IA__g_main_context_dispatch (context=0x813d288) at gmain.c:1814 #26 0xb5f142fb in g_main_context_iterate (context=0x813d288, block=1, dispatch=1, self=0x813adf8) at gmain.c:2448 #27 0xb5f14478 in IA__g_main_context_iteration (context=0x813d288, may_block=1) at gmain.c:2511 #28 0xb7344428 in QEventDispatcherGlib::processEvents (this=0x813b0e0, flags={i = -1081183704}) at kernel/qeventdispatcher_glib.cpp:323 #29 0xb6868ac5 in QGuiEventDispatcherGlib::processEvents (this=0x813b0e0, flags={i = -1081183656}) at kernel/qguieventdispatcher_glib.cpp:202 #30 0xb7316ffa in QEventLoop::processEvents (this=0xbf8e72cc, flags={i = -1081183592}) at kernel/qeventloop.cpp:149 #31 0xb731743a in QEventLoop::exec (this=0xbf8e72cc, flags={i = -1081183532}) at kernel/qeventloop.cpp:200 #32 0xb6cc5be3 in QDialog::exec (this=0xbf8e7318) at dialogs/qdialog.cpp:498 #33 0x080aa9f1 in _start () Hi Ruchir, I experienced the same and filed https://bugs.kde.org/show_bug.cgi?id=188063 about that issue. - Clemens I am also on Gentoo and kolourpaint 4.2.1 and I observed this issue with qt-4.5.0 that when I select transparent (alpha) bucket fill background and then draw a solid object, it crashes. Other tools seemed fine. At that time, Kubuntu 9.04 alpha had the same issue, but Ubuntu 8.10 with backported kde 4.2.1 was fine. Downgrading to qt-4.4.2 in Gentoo had solved it. Today I tried again on Ubuntu alpha6 and the entire kolourpaint is crashy. Worst is, as mentioned, kolourpaintrc has to be deleted to even launch kolourpaint again. In the function void kpPixmapFX::ensureNoAlphaChannel (QPixmap *destPixmapPtr) [kolourpaint/pixmapfx/kpPixmapFX_MaskOps.cpp], changing the line: p.drawPixmap (QPoint (0, 0), oldPixmap); to: QRectF* pixmapRect = new QRectF (0, 0, destPixmapPtr->width (), destPixmapPtr->height ()); p.drawImage (*pixmapRect, oldPixmap.toImage (), *pixmapRect); appears to fix it. In case I've broken something else, or it's an idiosyncratic fix for my machine, could someone else please verify whether it works? Thanks! Same error here. When I select Line tool, for example, it simply crashes. It's very annoying, and I'm not able to run Kolourpaint again, it crashes as it loads :-\ I had to go back to Qt 4.4.3 :( BTW, why people suscribes to this bug but they don't vote it? 16 users, only 2 votes. I suppose they don't have free votes enough :S *** Bug 188306 has been marked as a duplicate of this bug. *** @Thurston Dang: the fix seems to solve the crash. However I don't know if it affects other things. A simpler approach is using: p.drawImage (QPoint (0, 0), oldPixmap.toImage()); (avoiding the QRects) @Darío Andrés: Oops, don't know how I overlooked that approach :-). The bug when using drawPixmap appears to be Qt accessing free'd memory. (Accordingly, another "fix", which does not require modifying the KolourPaint code, is to remove 'deref();' call from QPixmap::~QPixmap(). Unfortunately there's then a large and growing memory leak which makes this impractical, but it does support this account.) In particular, in Qt 4.5.0, the following happens: ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) qpaintengine_x11.cpp:1860 is 'QPixmap pixmap = qt_toX11Pixmap(px);' qpixmap_x11.cpp:96 is 'if (QPixmap(pixmap).data_ptr()->classId() == QPixmapData::X11Class)', which therefore sets the destruction in motion. Eventually, the free'd memory is presumably overwritten, and then read again ... ==17281== Invalid read of size 4 ==17281== at 0x51A4585: QPixmapData::depth() const (qpixmapdata_p.h:113) ==17281== by 0x51A1BEF: QPixmap::depth() const (qpixmap.cpp:570) ==17281== by 0x52EDE9B: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1886) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ... providing the wrong value, whereupon the earth explodes. 'QPixmap pixmap = qt_toX11Pixmap(px);' is, as expected, new to Qt 4.5.0 (http://websvn.kde.org/*checkout*/trunk/qt-copy/src/gui/painting/qpaintengine_x11.cpp?revision=865977&content-type=text%2Fplain) (though omitting this step doesn't solve the problem entirely, presumably because there are other changes to Qt that require the pixmap to have been converted into an X11Pixmap via qt_toX11Pixmap, and/or because incorrect free'ing still occurs). All of this is a long-winded way of saying: I don't see an inherent flaw with what KolourPaint is doing, so I think the change to drawImage (with corresponding .toImage()) should be safe, rather than simply covering up a bug in KolourPaint. (Besides, the QPainter Class Reference claims that "drawPixmap() and drawImage() produce the same result [excepting different performance characteristics]"; of course, if that were entirely true, then it shouldn't crash only for drawPixmap.) valgrind output: ==17281== ==17281== Invalid read of size 4 ==17281== at 0x4376E80: QBasicAtomicInt::ref() (in /home/kdevel/qt-copy/lib/libQt3Support.so.4.5.0) ==17281== by 0x51A3807: QPixmap::QPixmap(QPixmap const&) (qpixmap.cpp:288) ==17281== by 0x51B8579: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:97) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== Address 0x7EE505C is 4 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x51A42C4: QPixmapData::classId() const (qpixmapdata_p.h:97) ==17281== by 0x51B16EF: QPixmap::x11Info() const (qpixmap_x11.cpp:2044) ==17281== by 0x52EDC5A: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1862) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== Address 0x7EE5068 is 16 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x516E7B9: QX11Info::screen() const (qx11info_x11.cpp:475) ==17281== by 0x52EDC62: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1862) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== by 0x4773C69: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:307) ==17281== Address 0x7EE5084 is 44 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x51A42C4: QPixmapData::classId() const (qpixmapdata_p.h:97) ==17281== by 0x51B16EF: QPixmap::x11Info() const (qpixmap_x11.cpp:2044) ==17281== by 0x52EDC74: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1862) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== Address 0x7EE5068 is 16 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x516E7B9: QX11Info::screen() const (qx11info_x11.cpp:475) ==17281== by 0x52EDC7C: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1862) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== by 0x4773C69: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:307) ==17281== Address 0x7EE5084 is 44 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x51A42C4: QPixmapData::classId() const (qpixmapdata_p.h:97) ==17281== by 0x51B16EF: QPixmap::x11Info() const (qpixmap_x11.cpp:2044) ==17281== by 0x52EDD17: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1868) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== Address 0x7EE5068 is 16 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x516E7B9: QX11Info::screen() const (qx11info_x11.cpp:475) ==17281== by 0x52EDD1F: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1868) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== by 0x4773C69: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:307) ==17281== Address 0x7EE5084 is 44 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== ==17281== Invalid read of size 4 ==17281== at 0x52EDD2E: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1871) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== by 0x4773C69: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:307) ==17281== by 0x4D6E751: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:598) ==17281== Address 0x7EE508C is 52 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) qpixmapdata_p.h::depth() - Returning metric(QPaintDevice::PdmDepth) qpixmapdata_p.h::depth() - 6 qpixmapdata_p.h::depth() - ==17281== ==17281== Invalid read of size 4 ==17281== at 0x51A4585: QPixmapData::depth() const (qpixmapdata_p.h:113) ==17281== by 0x51A1BEF: QPixmap::depth() const (qpixmap.cpp:570) ==17281== by 0x52EDE9B: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1886) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) ==17281== by 0x80F1B04: kpToolWidgetBase::event(QEvent*) (kpToolWidgetBase.cpp:607) ==17281== by 0x50C0EB4: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4084) ==17281== by 0x50C2EAB: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4049) ==17281== Address 0x7EE5058 is 0 bytes inside a block of size 72 free'd ==17281== at 0x4004CF1: operator delete(void*) (vg_replace_malloc.c:244) ==17281== by 0x51B2E05: QX11PixmapData::~QX11PixmapData() (qpixmap_x11.cpp:1183) ==17281== by 0x51A0B2E: QPixmap::deref() (qpixmap.cpp:1322) ==17281== by 0x51A1D68: QPixmap::~QPixmap() (qpixmap.cpp:332) ==17281== by 0x51B8561: qt_toX11Pixmap(QPixmap const&) (qpixmap_x11.cpp:96) ==17281== by 0x52EDC29: QX11PaintEngine::drawPixmap(QRectF const&, QPixmap const&, QRectF const&) (qpaintengine_x11.cpp:1860) ==17281== by 0x520B034: QPainter::drawPixmap(QPointF const&, QPixmap const&) (qpainter.cpp:5235) ==17281== by 0x80BEA65: kpPixmapFX::ensureNoAlphaChannel(QPixmap*) (qpainter.h:804) ==17281== by 0x80BDC5A: kpPixmapFX::convertToPixmap(QImage const&, bool, kpPixmapFX::WarnAboutLossInfo const&) (kpPixmapFX_FormatConversion.cpp:255) ==17281== by 0x80873BA: kpEffectInvert::applyEffect(QPixmap*, int) (kpEffectInvert.cpp:47) ==17281== by 0x80F0C74: kpToolWidgetBase::paintEvent(QPaintEvent*) (kpToolWidgetBase.cpp:670) ==17281== by 0x51253F0: QWidget::event(QEvent*) (qwidget.cpp:7654) pure virtual method called terminate called without an active exception KCrash: Application 'kolourpaint' crashing... sock_file=/home/kdevel/.kde4/socket-kfree.raisinbun/kdeinit4_localhost_10 Warning: connect() failed: : No such file or directory *** This bug has been confirmed by popular vote. *** @Thurston: thanks for the great analysis. However I lack the needed knowledge about Qt/X11 to evaluate this. This still occurs in KDE 4.2.2 on Fedora with Qt 4.5.0. Kevin Kofler fixed a bug in QAtomic with inlined ASM (he can explain more, I'll get him to post here), but that also failed to fix this bug. It works with -graphicssystem raster here. (In reply to comment #33) > This still occurs in KDE 4.2.2 on Fedora with Qt 4.5.0. Kevin Kofler fixed a > bug in QAtomic with inlined ASM (he can explain more, I'll get him to post > here), but that also failed to fix this bug. It works with -graphicssystem > raster here. Same here on opensuse 11.1 with qt 4.5. Application: KolourPaint (kolourpaint), signal SIGSEGV [?1034h[Thread debugging using libthread_db enabled] [Current thread is 1 (Thread 0xb5b40700 (LWP 10989))] Thread 1 (Thread 0xb5b40700 (LWP 10989)): [KCrash Handler] #6 0x00000100 in ?? () #7 0xb6885796 in QX11PaintEngine::drawPixmap (this=0x83a10d8, r=@0xbf8a2eb0, px=@0xbf8a3028, _sr=@0xbf8a2e90) at painting/qpaintengine_x11.cpp:1886 #8 0xb67b9966 in QPainter::drawPixmap (this=0xbf8a3034, r=@0xbf8a2fc0, pm=@0xbf8a3028, sr=@0xbf8a2fe0) at painting/qpainter.cpp:5354 #9 0x080c006b in kpPixmapFX::ensureNoAlphaChannel (destPixmapPtr=0xbf8a3078) at /usr/include/QtGui/qpainter.h:745 #10 0x080be8b1 in kpPixmapFX::convertToPixmap (image=@0xbf8a30e0, pretty=false, wali=@0xbf8a30bc) at /usr/src/debug/kdegraphics-4.2.2/kolourpaint/pixmapfx/kpPixmapFX_FormatConversion.cpp:255 #11 0x0808a44b in kpEffectInvert::applyEffect (destPixmapPtr=0xbf8a31b4, channels=7) at /usr/src/debug/kdegraphics-4.2.2/kolourpaint/imagelib/effects/kpEffectInvert.cpp:47 #12 0x080f2f69 in kpToolWidgetBase::paintEvent (this=0x83695f0, e=0xbf8a36c4) at /usr/src/debug/kdegraphics-4.2.2/kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:670 #13 0xb66d88ce in QWidget::event (this=0x83695f0, event=0xbf8a36c4) at kernel/qwidget.cpp:7654 #14 0x080f2866 in kpToolWidgetBase::event (this=0x83695f0, e=0xbf8a36c4) at /usr/src/debug/kdegraphics-4.2.2/kolourpaint/widgets/toolbars/options/kpToolWidgetBase.cpp:607 #15 0xb6681eec in QApplicationPrivate::notify_helper (this=0x813abb8, receiver=0x83695f0, e=0xbf8a36c4) at kernel/qapplication.cpp:4084 #16 0xb668a292 in QApplication::notify (this=0xbf8a53e4, receiver=0x83695f0, e=0xbf8a36c4) at kernel/qapplication.cpp:4049 #17 0xb778ebcd in KApplication::notify (this=0xbf8a53e4, receiver=0x83695f0, event=0xbf8a36c4) at /usr/src/debug/kdelibs-4.2.2/kdeui/kernel/kapplication.cpp:307 #18 0xb71d19db in QCoreApplication::notifyInternal (this=0xbf8a53e4, receiver=0x83695f0, event=0xbf8a36c4) at kernel/qcoreapplication.cpp:602 #19 0xb668cffe in QCoreApplication::sendSpontaneousEvent (receiver=0x83695f0, event=0x8388bd0) at ../../src/corelib/kernel/qcoreapplication.h:216 #20 0xb66e0699 in QWidgetPrivate::drawWidget (this=0x83795d0, pdev=0x81d766c, rgn=@0xbf8a3824, offset=@0xbf8a381c, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5046 #21 0xb66e0e3e in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=5, rgn=@0xbf8a38b4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5156 #22 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=7, rgn=@0xbf8a3944, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #23 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=8, rgn=@0xbf8a39d4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #24 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=9, rgn=@0xbf8a3a64, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #25 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=10, rgn=@0xbf8a3af4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #26 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=11, rgn=@0xbf8a3b84, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #27 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=12, rgn=@0xbf8a3c14, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #28 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=13, rgn=@0xbf8a3ca4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #29 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=14, rgn=@0xbf8a3d34, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #30 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=15, rgn=@0xbf8a3dc4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #31 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=16, rgn=@0xbf8a3e54, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #32 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=17, rgn=@0xbf8a3ee4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #33 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=18, rgn=@0xbf8a3f74, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #34 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=19, rgn=@0xbf8a4004, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #35 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=20, rgn=@0xbf8a4094, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #36 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=21, rgn=@0xbf8a4124, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #37 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=22, rgn=@0xbf8a41b4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #38 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=23, rgn=@0xbf8a4244, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #39 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=24, rgn=@0xbf8a42d4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #40 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x835f828, pdev=0x81d766c, siblings=@0x835f834, index=25, rgn=@0xbf8a44b4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #41 0xb66e028a in QWidgetPrivate::drawWidget (this=0x835f828, pdev=0x81d766c, rgn=@0xbf8a44b4, offset=@0xbf8a44ac, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5095 #42 0xb66e0e3e in QWidgetPrivate::paintSiblingsRecursive (this=0x835f540, pdev=0x81d766c, siblings=@0x835f54c, index=6, rgn=@0xbf8a4694, offset=@0xbf8a468c, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5156 #43 0xb66e028a in QWidgetPrivate::drawWidget (this=0x835f540, pdev=0x81d766c, rgn=@0xbf8a4694, offset=@0xbf8a468c, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5095 #44 0xb66e0e3e in QWidgetPrivate::paintSiblingsRecursive (this=0x820a038, pdev=0x81d766c, siblings=@0x820a044, index=42, rgn=@0xbf8a4724, offset=@0x820bb54, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5156 #45 0xb66e0d54 in QWidgetPrivate::paintSiblingsRecursive (this=0x820a038, pdev=0x81d766c, siblings=@0x820a044, index=43, rgn=@0xbf8a49d8, offset=@0x820bb54, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5147 #46 0xb66e028a in QWidgetPrivate::drawWidget (this=0x820a038, pdev=0x81d766c, rgn=@0xbf8a49d8, offset=@0x820bb54, flags=4, sharedPainter=0x0, backingStore=0x820bb30) at kernel/qwidget.cpp:5095 #47 0xb689c23a in QWidgetBackingStore::sync (this=0x820bb30) at painting/qbackingstore.cpp:1266 #48 0xb689c5ed in QWidgetBackingStore::sync (this=0x820bb30, exposedWidget=0x81e2d10, exposedRegion=@0xbf8a4bd0) at painting/qbackingstore.cpp:1073 #49 0xb66d0ab2 in QWidgetPrivate::syncBackingStore (this=0x820a038, region=@0xbf8a4bd0) at kernel/qwidget.cpp:1612 #50 0xb66e8bee in QETWidget::translatePaintEvent (this=0x81e2d10, event=0xbf8a510c) at kernel/qapplication_x11.cpp:5123 #51 0xb66f83ca in QApplication::x11ProcessEvent (this=0xbf8a53e4, event=0xbf8a510c) at kernel/qapplication_x11.cpp:3441 #52 0xb67223ca in x11EventSourceDispatch (s=0x813cf08, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #53 0xb5dc9d88 in IA__g_main_context_dispatch (context=0x813ce20) at gmain.c:1814 #54 0xb5dcd2fb in g_main_context_iterate (context=0x813ce20, block=1, dispatch=1, self=0x8139018) at gmain.c:2448 #55 0xb5dcd478 in IA__g_main_context_iteration (context=0x813ce20, may_block=1) at gmain.c:2511 #56 0xb71fd428 in QEventDispatcherGlib::processEvents (this=0x813ab98, flags={i = -1081453880}) at kernel/qeventdispatcher_glib.cpp:323 #57 0xb6721ac5 in QGuiEventDispatcherGlib::processEvents (this=0x813ab98, flags={i = -1081453832}) at kernel/qguieventdispatcher_glib.cpp:202 #58 0xb71cfffa in QEventLoop::processEvents (this=0xbf8a5370, flags={i = -1081453768}) at kernel/qeventloop.cpp:149 #59 0xb71d043a in QEventLoop::exec (this=0xbf8a5370, flags={i = -1081453704}) at kernel/qeventloop.cpp:200 #60 0xb71d28e9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:880 #61 0xb6681d67 in QApplication::exec () at kernel/qapplication.cpp:3553 #62 0x0809518f in main (argc=1, argv=0xbf8a5594) at /usr/src/debug/kdegraphics-4.2.2/kolourpaint/kolourpaint.cpp:125 The assertion failure with -graphicssystem raster is apparently fixed by Qt 4.5.0 final. I'm fairly sure the crash with the X11 graphicssystem is a Qt bug. Valgrind logs (Ben, can you please attach them here?) point to a very bizarre use-after-free (there's a line in Qt's internal qt_toX11Pixmap function which constructs a temporary QPixmap as a copy of the pixmap, the destructor destroying the temporary then somehow destroys the implicitly shared data even though it's still referenced) which made me suspect the reference counting assembly. But fixing the constraints so an input/output constraint is used instead of separate input and output constraints (which may in principle map to different locations, though it's unlikely (impossible?) to happen for memory operands): http://cvs.fedoraproject.org/viewvc/rpms/qt/devel/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch?revision=1.1&view=markup didn't help, and I can't see any other potential flaws with it. Created attachment 32571 [details]
Valgrind output for kolourpaint
This is from when kolourpaint starts (it also crashes if there's a config file after a crash here), but it's the same bt as when using a tool.
The workaround from comment #29 is reported to work. Here is it formatted as a proper patch: http://cvs.fedoraproject.org/viewvc/rpms/kdegraphics/devel/kdegraphics-4.2.2-kolourpaint-kde%23183850-workaround.patch?revision=1.1&view=markup Should this be committed until we have a better solution (probably within Qt)? And are the Qt developers aware of this bug yet? I just had a chat with Qt developers, they are aware of the bug. I just came here to apply the same patch :P The fix for Qt will be released in 4.5.1, they said. :-) Of course, that had to be "to attach the same patch". The patch is, however, just a hotfix. The real bug is in Qt, in the setMask() function; it decreases the refcount for the QPixmap, which it shouldn't. Therefore, in the drawPixmap(), the refcount is 0; so the pixmap is cleaned up; right after that it is re-used but already cleaned up, making for a crash. The fix I was referring to is, as I said, in Qt 4.5.1. *** Bug 189244 has been marked as a duplicate of this bug. *** Should we commit the workaround? Or can this be fixed in qt-copy? Right now kolourpaint needs distro patches to work at all with the latest stable Qt (which for trunk is also the minimum required Qt). That's certainly not an ideal solution. *** Bug 189506 has been marked as a duplicate of this bug. *** *** Bug 189860 has been marked as a duplicate of this bug. *** *** Bug 190190 has been marked as a duplicate of this bug. *** *** Bug 190505 has been marked as a duplicate of this bug. *** Just to update the bug status: Here using: Qt: 4.5.1 (qt-copy 958974) KDE: 4.2.71 (KDE 4.2.71 (KDE 4.3 >= 20090428)) kdelibs svn rev. 960693 / kdebase svn rev. 960693 kdegraphics svn rev. 960710 on ArchLinux i686 - Kernel 2.6.29.1 I can't reproduce the crash anymore even when using the native graphics system. So I guess this was fixed somewhere in Qt (as the patch doesn't seem to be applied on svn...) Can anyone else confirm this ? or this is just random ? Thanks Qt: 4.5.1 KDE: 4.2.70 (KDE 4.2.70 (KDE 4.3 >= 20090415)) kdelibs: r960298 kdebase: r960293 Can't reproduce here. QT-4.5.2, kde-4.2.95 - seems to be fixed :) |