Summary: | Qt apps crash during resize and other situations (X11 pixmap data not being checked) [QX11PaintEngine::drawPixmap, QPaintEngine::drawImage, QX11PaintEngine::drawImage, QPainterPrivate::draw_helper] | ||
---|---|---|---|
Product: | [Unmaintained] kdelibs | Reporter: | Jesse Milette <linux.nerdy.kid> |
Component: | qt | Assignee: | kdelibs bugs <kdelibs-bugs> |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | CC: | achim_schaefer, alimakyol, alrond, andresbajotierra, cfeck, charlesopondo, cman2981, complynx, despen, greg.metcalfe, grosser.meister.morti, g_sauthoff, ibbles, info, ironmarc, ismabox, kaleb.pederson, kenneth.j.kruger, kontakt, laurent.theringaud, m.wege, mail, marokanski.kazak, mirco.bugs, podxboq, rad.n, ral, salvalemany, sheep77, spalmroos, spam-tonne, tshik2style, yyyy12 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi proposed patch |
Description
Jesse Milette
2010-03-12 20:08:00 UTC
- Does it happen if using another widget style ? (like Plastique or Cleanlooks) Regards Looks like Qt does not check the result of qt_toX11Pixmap (qpaintengine_x11.cpp:1908), it simply accesses X11 pixmap data later. @Christoph: could this be reported to Qt ? Bug 232800 and bug 233293 seem related to this too. *** Bug 228811 has been marked as a duplicate of this bug. *** From bug 229814: -- Information about the crash: I opened the systemsettings window, and tried the move to the sides to get the window maximized to the whole, or just a part of the screen. First I tried to the left side, which worked, next I tried to the top, when it crashed. From bug 228811: -- Information about the crash: I got this crash when I copied (ctrl-c) a large email (6.2 MB) in KMail to the clipboard and then opened the Klipper menu in the system tray. It doesn't seem related to KMail though, if I open a large text file in emacs, copy the text and then open the Klipper menu the same crash happens. The crash can be reproduced every time. *** Bug 229814 has been marked as a duplicate of this bug. *** *** Bug 216280 has been marked as a duplicate of this bug. *** *** Bug 227536 has been marked as a duplicate of this bug. *** Bug 234568 mentions some errors in the shell output (QPainter related) *** Bug 234568 has been marked as a duplicate of this bug. *** i got systemsettings to crash with the plastique style: backtrace: Application: System Settings (systemsettings), signal: Segmentation fault [KCrash Handler] #6 0x011fb987 in QX11PaintEngine::drawPixmap (this=0x93cfde8, r=..., px=..., _sr=...) at painting/qpaintengine_x11.cpp:1919 #7 0x01134105 in QPaintEngine::drawImage (this=0x93cfde8, r=..., image=..., sr=..., flags=...) at painting/qpaintengine.cpp:624 #8 0x011f9b19 in QX11PaintEngine::drawImage (this=0x93cfde8, r=..., image=..., sr=..., flags=...) at painting/qpaintengine_x11.cpp:1893 #9 0x0114b688 in QPainterPrivate::draw_helper (this=0x942c580, originalPath=..., op=<value optimized out>) at painting/qpainter.cpp:484 #10 0x01150fe9 in QPainter::drawPath (this=0xbfee611c, path=...) at painting/qpainter.cpp:3356 #11 0x0115329c in QPainter::fillPath (this=0xbfee611c, path=..., brush=...) at painting/qpainter.cpp:3309 #12 0x086bde23 in CategoryDrawer::drawCategory (this=0x934e378, index=..., sortRole=61393920, option=..., painter=0xbfee611c) at ../../../systemsettings/icons/CategoryDrawer.cpp:75 #13 0x00cac05d in KCategorizedView::paintEvent (this=0x912e8c8, event=0xbfee6954) at ../../kdeui/itemviews/kcategorizedview.cpp:815 #14 0x010346b6 in QWidget::event (this=0x912e8c8, event=0xbfee6954) at kernel/qwidget.cpp:8144 #15 0x01430fd3 in QFrame::event (this=0x912e8c8, e=0xbfee6954) at widgets/qframe.cpp:557 #16 0x014cb382 in QAbstractScrollArea::viewportEvent (this=0x1916ff4, e=0x0) at widgets/qabstractscrollarea.cpp:1036 #17 0x0157fbd7 in QAbstractItemView::viewportEvent (this=0x912e8c8, event=0xbfee6954) at itemviews/qabstractitemview.cpp:1610 #18 0x014cdc65 in QAbstractScrollAreaPrivate::viewportEvent (this=0x93b6be8, o=0x9129630, e=0xbfee6954) at widgets/qabstractscrollarea_p.h:100 #19 QAbstractScrollAreaFilter::eventFilter (this=0x93b6be8, o=0x9129630, e=0xbfee6954) at widgets/qabstractscrollarea_p.h:116 #20 0x00923cda in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9135c90, receiver=0x9129630, event=0xbfee6954) at kernel/qcoreapplication.cpp:819 #21 0x00fd64b9 in QApplicationPrivate::notify_helper (this=0x9135c90, receiver=0x9129630, e=0xbfee6954) at kernel/qapplication.cpp:4296 #22 0x00fdd0f9 in QApplication::notify (this=0xbfee8b5c, receiver=0x9129630, e=0xbfee6954) at kernel/qapplication.cpp:4265 #23 0x00cc9f2a in KApplication::notify (this=0xbfee8b5c, receiver=0x9129630, event=0xbfee6954) at ../../kdeui/kernel/kapplication.cpp:302 #24 0x00924a3b in QCoreApplication::notifyInternal (this=0xbfee8b5c, receiver=0x9129630, event=0xbfee6954) at kernel/qcoreapplication.cpp:704 #25 0x0103d9d6 in QCoreApplication::sendSpontaneousEvent (this=0x912e9b0, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218 #26 QWidgetPrivate::drawWidget (this=0x912e9b0, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5339 #27 0x0103e815 in QWidgetPrivate::paintSiblingsRecursive (this=0x93b5c90, pdev=0x9185e54, siblings=..., index=6, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5452 #28 0x0103d725 in QWidgetPrivate::drawWidget (this=0x93b5c90, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5388 #29 0x0103e815 in QWidgetPrivate::paintSiblingsRecursive (this=0x912fd68, pdev=0x9185e54, siblings=..., index=3, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5452 #30 0x0103d725 in QWidgetPrivate::drawWidget (this=0x912fd68, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5388 #31 0x0103e815 in QWidgetPrivate::paintSiblingsRecursive (this=0x912fbe8, pdev=0x9185e54, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5452 #32 0x0103e64e in QWidgetPrivate::paintSiblingsRecursive (this=0x912fbe8, pdev=0x9185e54, siblings=..., index=1, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5439 #33 0x0103d725 in QWidgetPrivate::drawWidget (this=0x912fbe8, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5388 #34 0x0103e815 in QWidgetPrivate::paintSiblingsRecursive (this=0x9397338, pdev=0x9185e54, siblings=..., index=3, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5452 #35 0x0103d725 in QWidgetPrivate::drawWidget (this=0x9397338, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5388 #36 0x0103e815 in QWidgetPrivate::paintSiblingsRecursive (this=0x9178a08, pdev=0x9185e54, siblings=..., index=4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5452 #37 0x0103d725 in QWidgetPrivate::drawWidget (this=0x9178a08, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5388 #38 0x0103e815 in QWidgetPrivate::paintSiblingsRecursive (this=0x9192878, pdev=0x9185e54, siblings=..., index=13, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5452 #39 0x0103e64e in QWidgetPrivate::paintSiblingsRecursive (this=0x9192878, pdev=0x9185e54, siblings=..., index=18, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5439 #40 0x0103d725 in QWidgetPrivate::drawWidget (this=0x9192878, pdev=0x9185e54, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0x91de488) at kernel/qwidget.cpp:5388 #41 0x01214890 in QWidgetBackingStore::sync (this=0x91de488) at painting/qbackingstore.cpp:1291 #42 0x0102db93 in QWidgetPrivate::syncBackingStore (this=0x9192878) at kernel/qwidget.cpp:1672 #43 0x0105b78e in QETWidget::translateConfigEvent (this=0x91786c8, event=0xbfee87bc) at kernel/qapplication_x11.cpp:5252 #44 0x01066cd6 in QApplication::x11ProcessEvent (this=0xbfee8b5c, event=0xbfee87bc) at kernel/qapplication_x11.cpp:3406 #45 0x0109660a in x11EventSourceDispatch (s=0x9138fa8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #46 0x040995e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #47 0x0409d2d8 in ?? () from /lib/libglib-2.0.so.0 #48 0x0409d4b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0 #49 0x009505d5 in QEventDispatcherGlib::processEvents (this=0x91104a0, flags=...) at kernel/qeventdispatcher_glib.cpp:412 #50 0x01096135 in QGuiEventDispatcherGlib::processEvents (this=0x91104a0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #51 0x00923059 in QEventLoop::processEvents (this=0xbfee8ab4, flags=) at kernel/qeventloop.cpp:149 #52 0x009234aa in QEventLoop::exec (this=0xbfee8ab4, flags=...) at kernel/qeventloop.cpp:201 #53 0x0092769f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981 #54 0x00fd6577 in QApplication::exec () at kernel/qapplication.cpp:3579 #55 0x08056b5e in main (argc=5, argv=0xbfee8ca4) at ../../../systemsettings/app/main.cpp:49 Created attachment 42947 [details]
New crash information added by DrKonqi
plasma-desktop (0.3) on KDE Platform 4.4.72 (KDE 4.4.72 (KDE 4.5 >= 20100415)) "release 4" using Qt 4.6.3
- What I was doing when the application crashed:
First crash was when trying to add sticky notes to the desktop. Then repeated periodically. Also repeated crash when restarted. Last crash was right before I've marked the dublicate.
-- Backtrace (Reduced):
#7 0xb651c086 in QX11PaintEngine::drawPixmap (this=0x9c96698, r=@0xbfd16990, px=@0xbfd166d8, _sr=@0xbfd166a8) at painting/qpaintengine_x11.cpp:1919
#8 0xb6451669 in QPaintEngine::drawImage (this=0x9c96698, r=@0xbfd16990, image=@0xbfd16b34, sr=@0xbfd169b0, flags={i = -1076795460}) at painting/qpaintengine.cpp:624
#9 0xb651a1c4 in QX11PaintEngine::drawImage (this=0x9c96698, r=@0xbfd16990, image=@0xbfd16b34, sr=@0xbfd169b0, flags={i = -1076794560}) at painting/qpaintengine_x11.cpp:1893
#10 0xb6469636 in QPainterPrivate::draw_helper (this=0x9cdeb70, originalPath=@0xbfd16c24, op=<value optimized out>) at painting/qpainter.cpp:484
#11 0xb646bc13 in QPainter::drawRects (this=0xbfd16fe0, rects=0xbfd16f08, rectCount=1) at painting/qpainter.cpp:3571
Created attachment 42952 [details]
New crash information added by DrKonqi
plasma-desktop (0.3) on KDE Platform 4.4.72 (KDE 4.4.72 (KDE 4.5 >= 20100415)) "release 4" using Qt 4.6.3
- What I was doing when the application crashed:
First crash was when trying to add sticky notes to the desktop. Then repeated periodically. Also repeated crash when restarted. Last crash was right before I've marked the dublicate.
-- Backtrace (Reduced):
#7 0xb651c086 in QX11PaintEngine::drawPixmap (this=0x9c96698, r=@0xbfd16990, px=@0xbfd166d8, _sr=@0xbfd166a8) at painting/qpaintengine_x11.cpp:1919
#8 0xb6451669 in QPaintEngine::drawImage (this=0x9c96698, r=@0xbfd16990, image=@0xbfd16b34, sr=@0xbfd169b0, flags={i = -1076795460}) at painting/qpaintengine.cpp:624
#9 0xb651a1c4 in QX11PaintEngine::drawImage (this=0x9c96698, r=@0xbfd16990, image=@0xbfd16b34, sr=@0xbfd169b0, flags={i = -1076794560}) at painting/qpaintengine_x11.cpp:1893
#10 0xb6469636 in QPainterPrivate::draw_helper (this=0x9cdeb70, originalPath=@0xbfd16c24, op=<value optimized out>) at painting/qpainter.cpp:484
#11 0xb646bc13 in QPainter::drawRects (this=0xbfd16fe0, rects=0xbfd16f08, rectCount=1) at painting/qpainter.cpp:3571
Created attachment 42953 [details]
New crash information added by DrKonqi
plasma-desktop (0.3) on KDE Platform 4.4.72 (KDE 4.4.72 (KDE 4.5 >= 20100415)) "release 4" using Qt 4.6.3
- What I was doing when the application crashed:
First crash was when trying to add sticky notes to the desktop. Then repeated periodically. Also repeated crash when restarted. Last crash was right before I've marked the dublicate.
-- Backtrace (Reduced):
#7 0xb651c086 in QX11PaintEngine::drawPixmap (this=0x9c96698, r=@0xbfd16990, px=@0xbfd166d8, _sr=@0xbfd166a8) at painting/qpaintengine_x11.cpp:1919
#8 0xb6451669 in QPaintEngine::drawImage (this=0x9c96698, r=@0xbfd16990, image=@0xbfd16b34, sr=@0xbfd169b0, flags={i = -1076795460}) at painting/qpaintengine.cpp:624
#9 0xb651a1c4 in QX11PaintEngine::drawImage (this=0x9c96698, r=@0xbfd16990, image=@0xbfd16b34, sr=@0xbfd169b0, flags={i = -1076794560}) at painting/qpaintengine_x11.cpp:1893
#10 0xb6469636 in QPainterPrivate::draw_helper (this=0x9cdeb70, originalPath=@0xbfd16c24, op=<value optimized out>) at painting/qpainter.cpp:484
#11 0xb646bc13 in QPainter::drawRects (this=0xbfd16fe0, rects=0xbfd16f08, rectCount=1) at painting/qpainter.cpp:3571
Created attachment 42954 [details]
New crash information added by DrKonqi
plasma-desktop (0.3) on KDE Platform 4.4.72 (KDE 4.4.72 (KDE 4.5 >= 20100415)) "release 4" using Qt 4.6.3
- What I was doing when the application crashed:
I've tryed again.
Also I've got report from terminal:
--------------------------------
plasma-desktop(9140)/libplasma Plasma::FrameSvgPrivate::generateFrameBackground: Not generating frame background for a size whose width or height is more than 100000 QSizeF(57, 1.34213e+07)
plasma-desktop(9140)/libplasma Plasma::FrameSvgPrivate::generateFrameBackground: Not generating frame background for a size whose width or height is more than 100000 QSizeF(57, 1.34213e+07)
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
Couldn't find node mask-overlay. Skipping rendering.
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 3
QPainter::setOpacity: Painter not active
QPainter::translate: Painter not active
QPainter::setWorldTransform: Painter not active
QPainter::setPen: Painter not active
QPainter::setBrush: Painter not active
QPainter::setBackground: Painter not active
QPainter::setBackgroundMode: Painter not active
QPainter::setBrushOrigin: Painter not active
QPainter::setRenderHint: Painter must be active to set rendering hints
QPainter::setRenderHint: Painter must be active to set rendering hints
QPainter::drawPath: Painter not active
QPainter::end: Painter not active, aborted
KCrash: Attempting to start /usr/bin/plasma-desktop from kdeinit
KCrash: Application 'plasma-desktop' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
--------------------------------------
-- Backtrace (Reduced):
#7 0xb5989086 in QX11PaintEngine::drawPixmap (this=0x9d69a88, r=@0xbfc5d990, px=@0xbfc5d6d8, _sr=@0xbfc5d6a8) at painting/qpaintengine_x11.cpp:1919
#8 0xb58be669 in QPaintEngine::drawImage (this=0x9d69a88, r=@0xbfc5d990, image=@0xbfc5db34, sr=@0xbfc5d9b0, flags={i = -1077553220}) at painting/qpaintengine.cpp:624
#9 0xb59871c4 in QX11PaintEngine::drawImage (this=0x9d69a88, r=@0xbfc5d990, image=@0xbfc5db34, sr=@0xbfc5d9b0, flags={i = -1077552320}) at painting/qpaintengine_x11.cpp:1893
#10 0xb58d6636 in QPainterPrivate::draw_helper (this=0x9a5d5c8, originalPath=@0xbfc5dc24, op=<value optimized out>) at painting/qpainter.cpp:484
#11 0xb58d8c13 in QPainter::drawRects (this=0xbfc5dfe0, rects=0xbfc5df08, rectCount=1) at painting/qpainter.cpp:3571
Created attachment 43207 [details]
New crash information added by DrKonqi
I had the same thing but rather than resizing the application (konsole) directly I had dragged it up to the top of the screen so kwin would resize to the entire screen.
*** Bug 237923 has been marked as a duplicate of this bug. *** *** Bug 238201 has been marked as a duplicate of this bug. *** *** Bug 240571 has been marked as a duplicate of this bug. *** *** Bug 234076 has been marked as a duplicate of this bug. *** Created attachment 48473 [details]
New crash information added by DrKonqi
Okular has crashed while resizing the window using custom shortcuts Windows 7-like.
Created attachment 49087 [details]
New crash information added by DrKonqi
I have a few compositing effects enabled. I used the right-half pane window option while dragging when it crashed.
*** Bug 245633 has been marked as a duplicate of this bug. *** *** Bug 246443 has been marked as a duplicate of this bug. *** *** Bug 232800 has been marked as a duplicate of this bug. *** *** Bug 246359 has been marked as a duplicate of this bug. *** *** Bug 242393 has been marked as a duplicate of this bug. *** *** Bug 236240 has been marked as a duplicate of this bug. *** Created attachment 49997 [details]
New crash information added by DrKonqi
kate (3.5.0) on KDE Platform 4.5.00 (KDE 4.5.0) using Qt 4.7.0
- What I was doing when the application crashed:
Moving kate around desktop with shortcuts for "Pack Window Up|Down|Left|Right" and "Maximize Window"
- Custom settings of the application:
Set shortcuts for above mentioned actions
-- Backtrace (Reduced):
#7 0x04805cc9 in QX11PaintEngine::drawPixmap (this=0x8729d88, r=..., px=..., _sr=...) at painting/qpaintengine_x11.cpp:1924
#8 0x04734217 in QPaintEngine::drawImage (this=0x8729d88, r=..., image=..., sr=..., flags=...) at painting/qpaintengine.cpp:624
#9 0x04803f91 in QX11PaintEngine::drawImage (this=0x8729d88, r=..., image=..., sr=..., flags=...) at painting/qpaintengine_x11.cpp:1898
#10 0x0474b85c in QPainterPrivate::draw_helper (this=0x8894100, originalPath=..., op=QPainterPrivate::StrokeAndFillDraw) at painting/qpainter.cpp:488
#11 0x04751799 in QPainter::drawPath (this=0xbfab61ac, path=...) at painting/qpainter.cpp:3372
The issue seems to be in video drivers failing to allocate memory to convert images to pixmaps (and Qt failing to handle that case). To help identifying the bug, please state (if possible) - xorg version - type of graphics/video drivers and version For the crash in Qt, I filed http://bugreports.qt.nokia.com/browse/QTBUG-12826 Still we need more information, why and where pixmap allocation could fail. It may be caused by pixmap leakage in other components or fragmentation in video card memory (anyone remember the "black windows" bug?) Created attachment 50007 [details]
proposed patch
Patch for Qt (created from 4.7.0 branch, but should also apply to 4.6.3).
The bug mentioned in comment #32 has been accepted upstream. *** Bug 247370 has been marked as a duplicate of this bug. *** *** Bug 249276 has been marked as a duplicate of this bug. *** *** Bug 250021 has been marked as a duplicate of this bug. *** *** Bug 248300 has been marked as a duplicate of this bug. *** *** Bug 249859 has been marked as a duplicate of this bug. *** *** Bug 253717 has been marked as a duplicate of this bug. *** *** Bug 269709 has been marked as a duplicate of this bug. *** *** Bug 272356 has been marked as a duplicate of this bug. *** *** Bug 280787 has been marked as a duplicate of this bug. *** *** Bug 284882 has been marked as a duplicate of this bug. *** *** Bug 277505 has been marked as a duplicate of this bug. *** |