Application: kwin (4.3.74 (KDE 4.3.74 (KDE 4.4 >= 20091102))) KDE Version: 4.3.74 (KDE 4.3.74 (KDE 4.4 >= 20091102)) (Compiled from sources) Qt Version: 4.6.0 Operating System: Linux 2.6.31.4-0.0.1.8d115ae-desktop i686 -- Backtrace: Application: KWin (kwin), signal: Segmentation fault [KCrash Handler] #6 0xb63dbeab in ?? () at /local/git/Qt/qt/src/gui/image/qpixmap.cpp:92 from /local/qt4/lib/libQtGui.so.4 #7 0xb77c17ff in KWin::SceneOpenGL::Window::paintDecoration (this=0x8ecfc38, decoration=0x8f2f174, decorationType=DecorationLeft, region=..., rect=..., data=..., quads=..., updateDeco=true) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene_opengl.cpp:1555 #8 0xb77c160b in KWin::SceneOpenGL::Window::performPaint (this=0x8ecfc38, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene_opengl.cpp:1517 #9 0xb77b08f2 in KWin::Scene::finalDrawWindow (this=0x8144920, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene.cpp:324 #10 0xb77c556d in KWin::EffectsHandlerImpl::drawWindow (this=0x81442b8, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects.cpp:178 #11 0xb19ae8d9 in KWin::ShadowEffect::drawWindow (this=0x818f448, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects/shadow/shadow.cpp:243 #12 0xb77c5513 in KWin::EffectsHandlerImpl::drawWindow (this=0x81442b8, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects.cpp:174 #13 0xb77b0879 in KWin::Scene::finalPaintWindow (this=0x8144920, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene.cpp:318 #14 0xb77c53fd in KWin::EffectsHandlerImpl::paintWindow (this=0x81442b8, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects.cpp:157 #15 0xb767224d in KWin::Effect::paintWindow (this=0x818f450, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/lib/kwineffects.cpp:230 #16 0xb77c53a3 in KWin::EffectsHandlerImpl::paintWindow (this=0x81442b8, w=0x92a58c8, mask=9, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects.cpp:153 #17 0xb77b07f9 in KWin::Scene::paintWindow (this=0x8144920, w=0x8ecfc38, mask=9, region=..., quads=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene.cpp:312 #18 0xb77b04c9 in KWin::Scene::paintSimpleScreen (this=0x8144920, orig_mask=8, region=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene.cpp:283 #19 0xb77af8ab in KWin::Scene::finalPaintScreen (this=0x8144920, mask=8, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene.cpp:176 #20 0xb77c5213 in KWin::EffectsHandlerImpl::paintScreen (this=0x81442b8, mask=8, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects.cpp:126 #21 0xb19ae348 in KWin::ShadowEffect::paintScreen (this=0x818f448, mask=8, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects/shadow/shadow.cpp:182 #22 0xb77c51c0 in KWin::EffectsHandlerImpl::paintScreen (this=0x81442b8, mask=8, region=..., data=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/effects.cpp:122 #23 0xb77af604 in KWin::Scene::paintScreen (this=0x8144920, mask=0xbf87f73c, region=0xbf87f80c) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene.cpp:134 #24 0xb77be0cf in KWin::SceneOpenGL::paint (this=0x8144920, damage=..., toplevels=...) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/scene_opengl.cpp:747 #25 0xb77a956f in KWin::Workspace::performCompositing (this=0x813ca18) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/composite.cpp:423 #26 0xb7725f1b in KWin::Workspace::qt_metacall (this=0x813ca18, _c=InvokeMetaMethod, _id=160, _a=0xbf87f8fc) at /local/build/KDE/kdebase/workspace/kwin/workspace.moc:510 #27 0xb602e3da in ?? () from /local/qt4/lib/libQtCore.so.4 #28 0xb603c9bb in QMetaObject::activate (sender=0x813cc84, m=0xb613e5a4, local_signal_index=0, argv=0x0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:3254 #29 0xb608e677 in QSocketNotifier::qt_metacast (this=0x813cc84, _clname=0x11 <Address 0x11 out of bounds>) at .moc/release-shared/moc_qsocketnotifier.cpp:66 #30 0xb6044cbe in QSingleShotTimer::QSingleShotTimer (this=0x813cc84, msec=-1081606688, receiver=0xbf87fde0, member=0x297 <Address 0x297 out of bounds>) at /local/git/Qt/qt/src/corelib/kernel/qtimer.cpp:291 #31 0xb6039824 in QObject::event (this=0x813cc84, e=0xbf87fde0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:1201 #32 0xb62ed37c in QApplicationPrivate::notify_helper (this=0x806a2f0, receiver=0x813cc84, e=0xb613eff4) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4242 #33 0xb62f3fc7 in QApplication::notify (this=0xbf880124, receiver=0x813cc84, e=0xbf87fde0) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3661 #34 0xb70fffec in KApplication::notify (this=0xbf880124, receiver=0x813cc84, event=0xbf87fde0) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/kernel/kapplication.cpp:296 #35 0xb7745044 in KWin::Application::notify (this=0xbf880124, o=0x813cc84, e=0xbf87fde0) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/main.cpp:370 #36 0xb60291cb in ?? () at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1067 from /local/qt4/lib/libQtCore.so.4 #37 0xb6058386 in normalizedTimeval (t=<value optimized out>) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_unix.cpp:591 #38 operator+ (t=<value optimized out>) at ../../include/QtCore/private/../../../../../git/Qt/qt/src/corelib/kernel/qcore_unix_p.h:129 #39 QTimerInfoList::activateTimers (t=<value optimized out>) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_unix.cpp:591 #40 0xb6055077 in timerSourcePrepare (source=0x0, timeout=0x0) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:165 #41 0xb40314c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #42 0xb4034d98 in ?? () from /usr/lib/libglib-2.0.so.0 #43 0xb4034ebe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #44 0xb6054d35 in QEventDispatcherGlib::hasPendingEvents (this=0x804b0e8) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:420 #45 0xb63a65d5 in QGuiEventDispatcherGlib::processEvents (this=0x804b0e8, flags=...) at /local/git/Qt/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:202 #46 0xb60277f9 in QEventLoop::wakeUp (this=0xbf880074) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:311 #47 0xb6027c4a in append (t=<value optimized out>, this=<value optimized out>) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/tools/qvector.h:544 #48 push (t=<value optimized out>, this=<value optimized out>) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/tools/qstack.h:59 #49 QEventLoop::exec (t=<value optimized out>, this=<value optimized out>) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:188 #50 0xb602bdcf in QCoreApplication::exec () at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:964 #51 0xb62ed417 in QApplication::exec () at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3570 #52 0xb7745ede in kdemain (argc=1, argv=0xbf880304) at /local/svn/kde/trunk/KDE/kdebase/workspace/kwin/main.cpp:526 #53 0x08048809 in main (argc=1, argv=0xbf880304) at /local/build/KDE/kdebase/workspace/kwin/kwin_dummy.cpp:3 Reported using DrKonqi
*** Bug 216094 has been marked as a duplicate of this bug. ***
*** Bug 216355 has been marked as a duplicate of this bug. ***
*** Bug 217376 has been marked as a duplicate of this bug. ***
*** Bug 218729 has been marked as a duplicate of this bug. ***
*** Bug 219110 has been marked as a duplicate of this bug. ***
*** Bug 219405 has been marked as a duplicate of this bug. ***
*** Bug 220829 has been marked as a duplicate of this bug. ***
Created attachment 39488 [details] Possible fix As I am unable to reproduce or do not know how to reproduce, can someone who is able to reproduce please try the attached patch? The crash seems to happen since Qt 4.6 (all duplicates are from Qt 4.6.0) in QPixmap::handle(). Looking at the source code ( http://qt.gitorious.org/qt/qt/blobs/d16ba0a93d611689bce9a2732a1cc8c9a317f5bf/src/gui/image/qpixmap.cpp#line1168 ) I can't see anything possible wrong. So my only idea is that the pixmap is a null pixmap and testing for that should hopefully prevent the crash.
SVN commit 1068519 by graesslin: Only load the decoration texture if the decoration pixmap is not null. This resulted in a crash with Qt 4.6 when accessing the pixmap handle. BUG: 213507 M +3 -1 scene_opengl.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1068519
After discussion on IRC I committed the patch. Christoph could you please try if it is really fixed?
I only got the crash once. But I can confirm that Qt 4.6 crashes when calling handle() on a null pixmap, while Qt 4.5 does not, so adding this check can only help. I will reopen if I see it after your commit.
*** Bug 223956 has been marked as a duplicate of this bug. ***