Bug 453460

Summary: Gwenview crashes randomly when rotating images
Product: [Applications] gwenview Reporter: Jan Rathmann <jan.rathmann>
Component: generalAssignee: Gwenview Bugs <gwenview-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash CC: bugziller, omerusta
Priority: NOR Keywords: drkonqi
Version: 22.04.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Jan Rathmann 2022-05-06 09:53:38 UTC
Application: gwenview (22.04.0)

Qt Version: 5.15.3
Frameworks Version: 5.93.0
Operating System: Linux 5.15.0-27-generic x86_64
Windowing System: Wayland
Distribution: Ubuntu 22.04 LTS
DrKonqi: 5.24.5 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:

This happened two times when I browsed a large collections of images (all PNG files) and I rotated/cropped some of them. The crashes  happened when I pressed Ctrl+R to rotate, and I also had unsaved changes (mostly rotating) from other images which got lost after the crash. When I made the next attempt to rotate the same image, it didn't crash.

I'm not sure whether this is a duplicate of the following bug:
https://bugs.kde.org/show_bug.cgi?id=439697

The crash does not seem to be reproducible.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault

[KCrash Handler]
#4  __memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:131
#5  0x00007fd1f2e855c2 in memcpy (__len=<optimized out>, __src=0x7fd192462d28, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:29
#6  QImage::copy (this=0x55892585f980, r=...) at image/qimage.cpp:1239
#7  0x00007fd1f450c78a in Gwenview::RasterImageItem::paint (this=0x5589256d4f40, painter=0x7ffc6a7212e0) at ./lib/documentview/rasterimageitem.cpp:106
#8  0x00007fd1f38f97b3 in QGraphicsScenePrivate::draw (this=this@entry=0x55892415ef90, item=item@entry=0x5589256d4f40, painter=painter@entry=0x7ffc6a7212e0, viewTransform=viewTransform@entry=0x0, transformPtr=<optimized out>, exposedRegion=exposedRegion@entry=0x558924323890, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:4981
#9  0x00007fd1f38fa773 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55892415ef90, item=0x5589256d4f40, painter=painter@entry=0x7ffc6a7212e0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x558924323890, widget=<optimized out>, widget@entry=0x558924328880, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
#10 0x00007fd1f38f990b in QGraphicsScenePrivate::draw (this=this@entry=0x55892415ef90, item=item@entry=0x55892468fde0, painter=painter@entry=0x7ffc6a7212e0, viewTransform=viewTransform@entry=0x0, transformPtr=<optimized out>, exposedRegion=exposedRegion@entry=0x558924323890, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:5013
#11 0x00007fd1f38fa773 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55892415ef90, item=0x55892468fde0, painter=painter@entry=0x7ffc6a7212e0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x558924323890, widget=<optimized out>, widget@entry=0x558924328880, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
#12 0x00007fd1f38f990b in QGraphicsScenePrivate::draw (this=0x55892415ef90, item=<optimized out>, painter=0x7ffc6a7212e0, viewTransform=0x0, transformPtr=<optimized out>, exposedRegion=0x558924323890, widget=<optimized out>, opacity=<optimized out>, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:5013
#13 0x00007fd1f38bc3f1 in QGraphicsItemEffectSourcePrivate::draw (this=0x558925a22430, painter=0x7ffc6a7212e0) at graphicsview/qgraphicsitem.cpp:11328
#14 0x00007fd1f3966f4a in QGraphicsEffectSource::draw (this=0x5589256dc970, painter=0x7ffc6a7212e0) at effects/qgraphicseffect_p.h:90
#15 0x00007fd1f38fa567 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55892415ef90, item=0x55892469ce10, painter=painter@entry=0x7ffc6a7212e0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x558924323890, widget=<optimized out>, widget@entry=0x558924328880, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4867
#16 0x00007fd1f38fadf2 in QGraphicsScenePrivate::drawItems (this=this@entry=0x55892415ef90, painter=painter@entry=0x7ffc6a7212e0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x558924323890, widget=0x558924328880) at graphicsview/qgraphicsscene.cpp:4735
#17 0x00007fd1f391fc3f in QGraphicsView::paintEvent (this=<optimized out>, event=<optimized out>) at ../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:307
#18 0x00007fd1f35f04ee in QWidget::event (this=this@entry=0x558924323390, event=event@entry=0x7ffc6a7216a0) at kernel/qwidget.cpp:9033
#19 0x00007fd1f369e422 in QFrame::event (this=0x558924323390, e=0x7ffc6a7216a0) at widgets/qframe.cpp:550
#20 0x00007fd1f28a1b8a in QCoreApplicationPrivate::sendThroughObjectEventFilters (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1190
#21 QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x558924328880, event=event@entry=0x7ffc6a7216a0) at kernel/qcoreapplication.cpp:1179
#22 0x00007fd1f35ad702 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x558924328880, e=0x7ffc6a7216a0) at kernel/qapplication.cpp:3631
#23 0x00007fd1f28a1e2a in QCoreApplication::notifyInternal2 (receiver=0x558924328880, event=0x7ffc6a7216a0) at kernel/qcoreapplication.cpp:1064
#24 0x00007fd1f35e843a in QWidgetPrivate::sendPaintEvent (this=this@entry=0x5589241904b0, toBePainted=...) at kernel/qwidget.cpp:5467
#25 0x00007fd1f35e8c62 in QWidgetPrivate::drawWidget (this=0x5589241904b0, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5417
#26 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x5589243233d0, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#27 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x5589243233d0, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#28 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x558924323050, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#29 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x558924323050, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#30 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x5589241918b0, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#31 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x5589241918b0, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#32 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x55892423d800, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#33 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x55892423d800, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#34 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x5589241067e0, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#35 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x5589241067e0, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#36 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x5589240be3c0, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#37 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x5589240be3c0, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#38 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x5589240c6fd0, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#39 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=0x5589240c6fd0, pdev=0x558924a71038, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#40 0x00007fd1f35ea0a0 in QWidgetPrivate::paintSiblingsRecursive (this=this@entry=0x55892400d400, pdev=pdev@entry=0x558924a71038, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x558924672c90) at kernel/qwidget.cpp:5598
#41 0x00007fd1f35e897c in QWidgetPrivate::drawWidget (this=this@entry=0x55892400d400, pdev=0x558924a71038, rgn=..., offset=..., flags=..., flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at kernel/qwidget.cpp:5458
#42 0x00007fd1f35be9f5 in QWidgetRepaintManager::paintAndFlush (this=<optimized out>) at kernel/qwidgetrepaintmanager.cpp:1009
#43 0x00007fd1f35f0c3d in QWidget::event (this=0x558924081050, event=0x558925a34bf0) at kernel/qwidget.cpp:8978
#44 0x00007fd1f3dff79d in KXmlGuiWindow::event (this=0x558924081050, ev=0x558925a34bf0) at ./src/kxmlguiwindow.cpp:220
#45 0x00007fd1f35ad713 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x558924081050, e=0x558925a34bf0) at kernel/qapplication.cpp:3637
#46 0x00007fd1f28a1e2a in QCoreApplication::notifyInternal2 (receiver=0x558924081050, event=0x558925a34bf0) at kernel/qcoreapplication.cpp:1064
#47 0x00007fd1f28a4f17 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x558924081050, event_type=77, data=0x558923fc2370) at kernel/qcoreapplication.cpp:1821
#48 0x00007fd1f38ebf73 in QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=<optimized out>, this=<optimized out>) at ../../include/QtWidgets/5.15.3/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:191
#49 QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=0x5589243233d0) at ../../include/QtWidgets/5.15.3/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:186
#50 QGraphicsScenePrivate::_q_processDirtyItems (this=0x55892415ef90) at graphicsview/qgraphicsscene.cpp:516
#51 0x00007fd1f28cf40e in QObject::event (this=0x558924323ae0, e=0x558925717800) at kernel/qobject.cpp:1314
#52 0x00007fd1f35ad713 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x558924323ae0, e=0x558925717800) at kernel/qapplication.cpp:3637
#53 0x00007fd1f28a1e2a in QCoreApplication::notifyInternal2 (receiver=0x558924323ae0, event=0x558925717800) at kernel/qcoreapplication.cpp:1064
#54 0x00007fd1f28a4f17 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x558923fc2370) at kernel/qcoreapplication.cpp:1821
#55 0x00007fd1f28fba57 in postEventSourceDispatch (s=0x55892400b6b0) at kernel/qeventdispatcher_glib.cpp:277
#56 0x00007fd1f012fd1b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007fd1f01846f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#58 0x00007fd1f012d3c3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007fd1f28fb0a8 in QEventDispatcherGlib::processEvents (this=0x558923faee90, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#60 0x00007fd1f28a074b in QEventLoop::exec (this=this@entry=0x7ffc6a723720, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#61 0x00007fd1f28a8ce4 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#62 0x00007fd1f2e2ae10 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#63 0x00007fd1f35ad689 in QApplication::exec () at kernel/qapplication.cpp:2829
#64 0x0000558922d11cbb in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:197
[Inferior 1 (process 7754) detached]

Possible duplicates by query: bug 453207, bug 450095, bug 444208, bug 439697, bug 436894.

Reported using DrKonqi
Comment 1 Ömer Fadıl USTA 2022-05-07 02:36:26 UTC

*** This bug has been marked as a duplicate of bug 439697 ***
Comment 2 bugziller@rushpost.com 2022-07-02 20:10:41 UTC
Created attachment 150345 [details]
New crash information added by DrKonqi

gwenview (22.04.2) using Qt 5.15.4

After loading an image Gwenview crashes sometimes when rotating the image (3000x4000 pixels).

-- Backtrace (Reduced):
#5  0x00007fc957f8ed50 in QImage::copy(QRect const&) const () from /usr/lib/libQt5Gui.so.5
[...]
#13 0x00007fc958b08cea in QGraphicsEffectSource::draw(QPainter*) () from /usr/lib/libQt5Widgets.so.5
[...]
#15 0x00007fc958ac73c4 in QGraphicsView::paintEvent(QPaintEvent*) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007fc9587af354 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007fc958853bf3 in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5