Bug 439697

Summary: Gwenview crashes in Gwenview::RasterImageItem::paint() when trying to rotate a jpg file quickly multiple times
Product: [Applications] gwenview Reporter: Kai Uwe Broulik <kde>
Component: generalAssignee: Gwenview Bugs <gwenview-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: angelogia, bugseforuns, chalkitisge, christree4207, cornelis, elvis.angelaccio, enchanter42, euphonisten, flying-sheep, fw.smit01, ismailsahillioglu, jan.rathmann, kde.depletion917, kde, lxbujorianu, marat.minshin, moritzherrmann09+kde.org, nate, oded, omerusta, policratus, postix, prestonmontewest, sam, sid1950, simonpatp, yogo.1212, zilti
Priority: VHI    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 23.04
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
A sample case to demostrate bug
New crash information added by DrKonqi

Description Kai Uwe Broulik 2021-07-09 21:30:54 UTC
SUMMARY
When rotating an image while Gwenview is busy during startup, it crashes. I suspect it's the thumbnail generation code as it does not seem to happen when I hid the preview pane.

STEPS TO REPRODUCE
1. Open a JPEG file in Gwenview
2. Quickly hit "rotate left"

OBSERVED RESULT
Often it crashes

EXPECTED RESULT
It does not crash

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: git master as of 2021-07-02
Qt Version: 5.15.3

ADDITIONAL INFORMATION
#3  __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:383
#4  0x00007fbcb0876bf7 in memcpy (__len=<optimized out>, __src=0x7fbc5c584570, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34
#5  QImage::copy (this=0x55930b3e5720, r=...) at image/qimage.cpp:1239
#6  0x00007fbcb1eb7ac5 in ?? () from /usr/lib/x86_64-linux-gnu/libgwenviewlib.so.5
#7  0x00007fbcb1260e2c in QGraphicsScenePrivate::draw (this=this@entry=0x55930b4a7370, item=item@entry=0x55930c4c4af0, painter=painter@entry=0x7ffdce4e78b0, viewTransform=viewTransform@entry=0x0, transformPtr=<optimized out>, exposedRegion=exposedRegion@entry=0x55930b7743f0, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:4981
#8  0x00007fbcb1261cf0 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55930b4a7370, item=0x55930c4c4af0, painter=painter@entry=0x7ffdce4e78b0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x55930b7743f0, widget=<optimized out>, widget@entry=0x55930b737940, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
#9  0x00007fbcb1260c7b in QGraphicsScenePrivate::draw (this=this@entry=0x55930b4a7370, item=item@entry=0x55930c58d8b0, painter=painter@entry=0x7ffdce4e78b0, viewTransform=viewTransform@entry=0x0, transformPtr=<optimized out>, exposedRegion=exposedRegion@entry=0x55930b7743f0, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:5013
#10 0x00007fbcb1261cf0 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55930b4a7370, item=0x55930c58d8b0, painter=painter@entry=0x7ffdce4e78b0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x55930b7743f0, widget=<optimized out>, widget@entry=0x55930b737940, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
#11 0x00007fbcb1260c7b in QGraphicsScenePrivate::draw (this=<optimized out>, item=<optimized out>, painter=<optimized out>, viewTransform=<optimized out>, transformPtr=<optimized out>, exposedRegion=0x55930b7743f0, widget=<optimized out>, opacity=<optimized out>, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:5013
#12 0x00007fbcb1224041 in QGraphicsItemEffectSourcePrivate::draw(QPainter*) () at graphicsview/qgraphicsitem.cpp:11328
#13 0x00007fbcb12cce6a in QGraphicsEffectSource::draw (this=0x55930c0f53c0, painter=0x7ffdce4e78b0) at effects/qgraphicseffect_p.h:90
#14 0x00007fbcb12ccf56 in QGraphicsEffect::drawSource (this=<optimized out>, painter=<optimized out>) at effects/qgraphicseffect.cpp:255
#15 0x00007fbcb12cd8fd in QGraphicsOpacityEffect::draw (this=0x55930c0f8270, painter=0x7ffdce4e78b0) at effects/qgraphicseffect.cpp:1199
#16 0x00007fbcb1261bcc in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55930b4a7370, item=0x55930c4f8c60, painter=painter@entry=0x7ffdce4e78b0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x55930b7743f0, widget=<optimized out>, widget@entry=0x55930b737940, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4867
#17 0x00007fbcb1262242 in QGraphicsScenePrivate::drawItems (this=this@entry=0x55930b4a7370, painter=painter@entry=0x7ffdce4e78b0, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x55930b7743f0, widget=0x55930b737940) at ../../include/QtCore/../../src/corelib/tools/qlist.h:570
#18 0x00007fbcb1286a29 in QGraphicsView::paintEvent (this=0x55930b77c720, event=<optimized out>) at ../../include/QtWidgets/../../src/widgets/graphicsview/qgraphicsscene.h:307
#19 0x00007fbcb0f61cf6 in QWidget::event (this=this@entry=0x55930b77c720, event=event@entry=0x7ffdce4e7e80) at kernel/qwidget.cpp:8664
#20 0x00007fbcb1012092 in QFrame::event (this=0x55930b77c720, e=0x7ffdce4e7e80) at widgets/qframe.cpp:550
#21 0x00007fbcb1285411 in QGraphicsView::viewportEvent (this=0x55930b77c720, event=0x7ffdce4e7e80) at graphicsview/qgraphicsview.cpp:3014
#22 0x00007fbcb01684c3 in QCoreApplicationPrivate::sendThroughObjectEventFilters (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1190
#23 QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x55930b737940, event=event@entry=0x7ffdce4e7e80) at kernel/qcoreapplication.cpp:1179
#24 0x00007fbcb0f1edb2 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55930b737940, e=0x7ffdce4e7e80) at kernel/qapplication.cpp:3626
#25 0x00007fbcb0f27bb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156
#26 0x00007fbcb016875a in QCoreApplication::notifyInternal2 (receiver=0x55930b737940, event=0x7ffdce4e7e80) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#27 0x00007fbcb0f5a0aa in QWidgetPrivate::sendPaintEvent (this=0x55930b737980, toBePainted=...) at kernel/qwidget.cpp:5467
#28 0x00007fbcb0f5a8d2 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at kernel/qwidget.cpp:5417
#29 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b773f30, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#30 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#31 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b77c3b0, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#32 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#33 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b51cde0, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#34 0x00007fbcb0f5bbb6 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b51cde0, pdev=0x7fbca4008340, siblings=..., index=2, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at kernel/qwidget.cpp:5584
#35 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#36 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b5376c0, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#37 0x00007fbcb0f5bbb6 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b5376c0, pdev=0x7fbca4008340, siblings=..., index=2, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at kernel/qwidget.cpp:5584
#38 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#39 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b291f90, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#40 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#41 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b34fe00, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#42 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#43 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b3f39f0, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#44 0x00007fbcb0f5bbb6 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b3f39f0, pdev=0x7fbca4008340, siblings=..., index=2, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at kernel/qwidget.cpp:5584
#45 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#46 0x00007fbcb0f5bcd3 in QWidgetPrivate::paintSiblingsRecursive (this=0x55930b39a810, pdev=0x7fbca4008340, siblings=..., index=<optimized out>, rgn=..., offset=..., flags=..., sharedPainter=0x0, repaintManager=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:124
#47 0x00007fbcb0f5a5ec in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () at ../../include/QtCore/../../src/corelib/tools/qlist.h:176
#48 0x00007fbcb0f31499 in QWidgetRepaintManager::paintAndFlush (this=this@entry=0x55930b7310d0) at ../../include/QtCore/../../src/corelib/tools/qpoint.h:122
#49 0x00007fbcb0f31f44 in QWidgetRepaintManager::sync (this=0x55930b7310d0) at kernel/qwidgetrepaintmanager.cpp:770
#50 0x00007fbcb0f5b775 in QWidgetPrivate::syncBackingStore (this=0x55930b39a810) at kernel/qwidget.cpp:1756
#51 0x00007fbcb0f626ec in QWidget::event (this=this@entry=0x55930b3b6b80, event=event@entry=0x55930c12eb60) at kernel/qwidget.cpp:8965
#52 0x00007fbcb107aa58 in QMainWindow::event (this=0x55930b3b6b80, event=0x55930c12eb60) at widgets/qmainwindow.cpp:1341
#53 0x00007fbcb1742e13 in KMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#54 0x00007fbcb17929fb in KXmlGuiWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#55 0x00007fbcb0f1edc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55930b3b6b80, e=0x55930c12eb60) at kernel/qapplication.cpp:3632
#56 0x00007fbcb0f27bb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156
#57 0x00007fbcb016875a in QCoreApplication::notifyInternal2 (receiver=0x55930b3b6b80, event=0x55930c12eb60) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#58 0x00007fbcb016b061 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x55930b3b6b80, event_type=77, data=0x55930b25fce0) at kernel/qcoreapplication.cpp:1821
#59 0x00007fbcb1252aeb in QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=<optimized out>) at ../../include/QtWidgets/5.15.3/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:191
#60 QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=0x55930b773f30) at ../../include/QtWidgets/5.15.3/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:186
#61 QGraphicsScenePrivate::_q_processDirtyItems (this=0x55930b4a7370) at graphicsview/qgraphicsscene.cpp:516
#62 0x00007fbcb125883d in QGraphicsScene::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at graphicsview/qgraphicsscene.h:307
#63 0x00007fbcb01962f9 in QObject::event (this=this@entry=0x55930b6a80e0, e=e@entry=0x55930c613e20) at kernel/qobject.cpp:1314
#64 0x00007fbcb1266c93 in QGraphicsScene::event (this=0x55930b6a80e0, event=0x55930c613e20) at graphicsview/qgraphicsscene.cpp:3548
#65 0x00007fbcb0f1edc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55930b6a80e0, e=0x55930c613e20) at kernel/qapplication.cpp:3632
#66 0x00007fbcb0f27bb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156
#67 0x00007fbcb016875a in QCoreApplication::notifyInternal2 (receiver=0x55930b6a80e0, event=0x55930c613e20) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#68 0x00007fbcb016b061 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55930b25fce0) at kernel/qcoreapplication.cpp:1821
#69 0x00007fbcb01c3957 in postEventSourceDispatch (s=0x55930b33f2d0) at kernel/qeventdispatcher_glib.cpp:277
#70 0x00007fbcad6d617d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#71 0x00007fbcad6d6400 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#72 0x00007fbcad6d64a3 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#73 0x00007fbcb01c2fb2 in QEventDispatcherGlib::processEvents (this=0x55930b34f270, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#74 0x00007fbcb016725b in QEventLoop::exec (this=this@entry=0x7ffdce4ea820, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#75 0x00007fbcb016f414 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#76 0x000055930921351a in ?? ()
#77 0x00007fbcafb070b3 in __libc_start_main (main=0x559309213030, argc=2, argv=0x7ffdce4eaa98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdce4eaa88) at ../csu/libc-start.c:308
#78 0x0000559309213bae in ?? ()
Comment 1 Oded Arbel 2021-10-11 12:32:31 UTC
Created attachment 142331 [details]
New crash information added by DrKonqi

gwenview (21.11.70) using Qt 5.15.3

- What I was doing when the application crashed:

Undoing a 90 degrees rotation right. This was done almost immediately after startup.

-- Backtrace (Reduced):
#4  __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:391
#5  0x00007effd52d9be7 in memcpy (__len=<optimized out>, __src=0x7effb448ec58, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34
#6  QImage::copy (this=0x56499fc9e3c0, r=...) at image/qimage.cpp:1239
#7  0x00007effd6930a25 in Gwenview::RasterImageItem::paint (this=0x5649a00914b0, painter=0x7ffdb76a3010) at ./lib/documentview/rasterimageitem.cpp:106
#8  0x00007effd5cc3e2c in QGraphicsScenePrivate::draw (this=this@entry=0x56499f3cea40, item=item@entry=0x5649a00914b0, painter=painter@entry=0x7ffdb76a3010, viewTransform=viewTransform@entry=0x0, transformPtr=<optimized out>, exposedRegion=exposedRegion@entry=0x56499f79d3f0, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:4981
Comment 2 Nicolas Fella 2022-02-12 21:51:26 UTC
*** Bug 445505 has been marked as a duplicate of this bug. ***
Comment 3 Nicolas Fella 2022-02-12 21:51:40 UTC
*** Bug 450095 has been marked as a duplicate of this bug. ***
Comment 4 Nicolas Fella 2022-02-12 21:52:11 UTC
*** Bug 444208 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2022-03-22 01:44:58 UTC
*** Bug 451006 has been marked as a duplicate of this bug. ***
Comment 6 Ömer Fadıl USTA 2022-05-07 02:36:26 UTC
*** Bug 453460 has been marked as a duplicate of this bug. ***
Comment 7 Ömer Fadıl USTA 2022-05-07 02:39:18 UTC
Created attachment 148626 [details]
A sample case to demostrate bug
Comment 8 Ömer Fadıl USTA 2022-05-07 02:42:15 UTC
Steps to reproduce bug : 
1- Open the sample ( which i uploaded with this bug entry ) with gwenview
2- Pres ctrl 0 or rightclick and select Actual Size
3- Keep pressed and hold Ctrl Shift R about 2 minutes
4- it will crash

My crash backtrace is : 

Application: Gwenview (gwenview), signal: Segmentation fault
Content of s_kcrashErrorMessage: {_M_t = {<std::__uniq_ptr_impl<char, std::default_delete<char []> >> = {_M_t = std::tuple containing = {[1] = 0x0, [2] = {<No data fields>}}}, <No data fields>}}
[KCrash Handler]
#5  0x00007fc51c3f848d in __memmove_avx_unaligned_erms () from /usr/lib/libc.so.6
#6  0x00007fc51d172b93 in QImage::copy(QRect const&) const () from /usr/lib/libQt5Gui.so.5
#7  0x00007fc51f4c3c4a in Gwenview::RasterImageItem::paint (this=0x565102da4850, painter=0x7ffc33d5eba0) at /home/kde-dev/kde/src/gwenview/lib/documentview/rasterimageitem.cpp:106
#8  0x00007fc51db62338 in ?? () from /usr/lib/libQt5Widgets.so.5
#9  0x00007fc51db63330 in ?? () from /usr/lib/libQt5Widgets.so.5
#10 0x00007fc51db6249b in ?? () from /usr/lib/libQt5Widgets.so.5
#11 0x00007fc51db63330 in ?? () from /usr/lib/libQt5Widgets.so.5
#12 0x00007fc51db6249b in ?? () from /usr/lib/libQt5Widgets.so.5
#13 0x00007fc51db38b01 in ?? () from /usr/lib/libQt5Widgets.so.5
#14 0x00007fc51dbc976c in QGraphicsEffectSource::draw(QPainter*) () from /usr/lib/libQt5Widgets.so.5
#15 0x00007fc51db6312e in ?? () from /usr/lib/libQt5Widgets.so.5
#16 0x00007fc51db86ad4 in QGraphicsView::paintEvent(QPaintEvent*) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007fc51d86c54c in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#18 0x00007fc51d91bc53 in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#19 0x00007fc51ca3232a in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#20 0x00007fc51d8362b5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#21 0x00007fc51ca335aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#22 0x00007fc51d86026c in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007fc51d861602 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007fc51d841b87 in ?? () from /usr/lib/libQt5Widgets.so.5
#25 0x00007fc51d86c8c5 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#26 0x00007fc51ed0af97 in KXmlGuiWindow::event (this=0x565102b88ae0, ev=0x565103377a00) at /home/kde-dev/kde/src/kxmlgui/src/kxmlguiwindow.cpp:220
#27 0x00007fc51d8362c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#28 0x00007fc51ca335aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#29 0x00007fc51ca340a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#30 0x00007fc51db6dadf in ?? () from /usr/lib/libQt5Widgets.so.5
#31 0x00007fc51ca577d6 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#32 0x00007fc51d8362c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#33 0x00007fc51ca335aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#34 0x00007fc51ca340a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#35 0x00007fc51ca7b678 in ?? () from /usr/lib/libQt5Core.so.5
#36 0x00007fc51aa64163 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0x00007fc51aaba9e9 in ?? () from /usr/lib/libglib-2.0.so.0
#38 0x00007fc51aa616c5 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#39 0x00007fc51ca7f57a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#40 0x00007fc51ca2b88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#41 0x00007fc51ca36fd7 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#42 0x0000565100d304ed in main (argc=<optimized out>, argv=0x7ffc33d5fbe8) at /home/kde-dev/kde/src/gwenview/app/main.cpp:205
[Inferior 1 (process 559583) detached]
Comment 9 Nicolas Fella 2022-08-25 00:29:41 UTC
*** Bug 458114 has been marked as a duplicate of this bug. ***
Comment 10 Nate Graham 2022-10-21 19:47:21 UTC
*** Bug 438678 has been marked as a duplicate of this bug. ***
Comment 11 Nate Graham 2022-10-21 19:47:24 UTC
*** Bug 459836 has been marked as a duplicate of this bug. ***
Comment 12 Nate Graham 2022-10-21 19:47:28 UTC
*** Bug 456549 has been marked as a duplicate of this bug. ***
Comment 13 Nate Graham 2022-10-21 19:48:15 UTC
*** Bug 459990 has been marked as a duplicate of this bug. ***
Comment 14 Elvis Angelaccio 2023-01-07 13:25:30 UTC
I was also hit by this crash.

Here's my stacktrace with debug symbols:

#0  __memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:544
#1  0x00007ffff558e9b0 in memcpy (__len=<optimized out>, __src=<optimized out>, __dest=<optimized out>, __dest=<optimized out>, __src=<optimized out>, __len=<optimized out>) at /usr/include/bits/string_fortified.h:29
#2  QImage::copy (this=0x55555654d5a0, r=...) at image/qimage.cpp:1239
#3  0x00007ffff7d0c651 in Gwenview::RasterImageItem::paint (this=0x55555684bc30, painter=0x7fffffffccc0) at /home/elvis/dev/kde/gwenview/lib/documentview/rasterimageitem.cpp:105
#4  0x00007ffff60a4a32 in QGraphicsScenePrivate::draw (this=this@entry=0x555555a5d9d0, item=item@entry=0x55555684bc30, painter=painter@entry=0x7fffffffccc0, viewTransform=viewTransform@entry=0x0, 
    transformPtr=transformPtr@entry=0x5555566f0910, exposedRegion=exposedRegion@entry=0x555555af2dc0, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, 
    drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:4981
#5  0x00007ffff60a52b7 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x555555a5d9d0, item=0x55555684bc30, painter=painter@entry=0x7fffffffccc0, viewTransform=viewTransform@entry=0x0, 
    exposedRegion=exposedRegion@entry=0x555555af2dc0, widget=widget@entry=0x555555b73820, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
#6  0x00007ffff60a478a in QGraphicsScenePrivate::draw (this=this@entry=0x555555a5d9d0, item=item@entry=0x55555683c740, painter=painter@entry=0x7fffffffccc0, viewTransform=viewTransform@entry=0x0, 
    transformPtr=transformPtr@entry=0x55555684ad20, exposedRegion=exposedRegion@entry=0x555555af2dc0, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, 
    drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:5013
#7  0x00007ffff60a52b7 in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x555555a5d9d0, item=0x55555683c740, painter=painter@entry=0x7fffffffccc0, viewTransform=viewTransform@entry=0x0, 
    exposedRegion=exposedRegion@entry=0x555555af2dc0, widget=widget@entry=0x555555b73820, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
#8  0x00007ffff60a478a in QGraphicsScenePrivate::draw (this=0x555555a5d9d0, item=0x5555560d5560, painter=0x7fffffffccc0, viewTransform=<optimized out>, transformPtr=<optimized out>, exposedRegion=<optimized out>, 
    widget=<optimized out>, opacity=<optimized out>, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:5013
#9  0x00007ffff607be0c in QGraphicsItemEffectSourcePrivate::draw (this=0x55555605b690, painter=0x7fffffffccc0) at graphicsview/qgraphicsitem.cpp:11331
#10 0x00007ffff6109f1a in QGraphicsEffectSource::draw (this=0x5555566dcb60, painter=0x7fffffffccc0) at effects/qgraphicseffect_p.h:90
#11 0x00007ffff60a56b4 in QGraphicsScenePrivate::drawSubtreeRecursive (this=<optimized out>, item=<optimized out>, painter=0x7fffffffccc0, viewTransform=<optimized out>, exposedRegion=0x555555af2dc0, widget=0x555555b73820, 
    parentOpacity=<optimized out>, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4867
#12 0x00007ffff60c84a4 in QGraphicsScenePrivate::drawItems (widget=0x555555b73820, exposedRegion=<optimized out>, viewTransform=0x0, painter=0x7fffffffccc0, this=<optimized out>) at graphicsview/qgraphicsscene.cpp:4735
#13 QGraphicsView::paintEvent (this=<optimized out>, event=<optimized out>) at graphicsview/qgraphicsview.cpp:3561
#14 0x00007ffff5daf514 in QWidget::event (this=0x555555a81d00, event=0x7fffffffd040) at kernel/qwidget.cpp:8826
#15 0x00007ffff5e5dac3 in QFrame::event (this=0x555555a81d00, e=0x7fffffffd040) at widgets/qframe.cpp:550
#16 0x00007ffff4e8cc02 in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x555555b73820, event=event@entry=0x7fffffffd040) at kernel/qcoreapplication.cpp:1190
#17 0x00007ffff5d78b4c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555555b73820, e=0x7fffffffd040) at kernel/qapplication.cpp:3634
#18 0x00007ffff4e8cf98 in QCoreApplication::notifyInternal2 (receiver=0x555555b73820, event=0x7fffffffd040) at kernel/qcoreapplication.cpp:1064
#19 0x00007ffff5da33db in QWidgetPrivate::sendPaintEvent (this=this@entry=0x555555b73980, toBePainted=...) at kernel/qwidget.cpp:5479
#20 0x00007ffff5da47b6 in QWidgetPrivate::drawWidget (this=0x555555b73980, pdev=0x5555566e4808, rgn=..., offset=..., flags=..., sharedPainter=<optimized out>, repaintManager=<optimized out>) at kernel/qwidget.cpp:5429
#21 0x00007ffff5d84890 in QWidgetRepaintManager::paintAndFlush (this=0x555555eba0b0) at kernel/qwidgetrepaintmanager.cpp:1016
#22 0x00007ffff5daf1e4 in QWidget::event (this=0x5555558cc8f0, event=0x555555ed3f00) at kernel/qwidget.cpp:8990
#23 0x00007ffff74c527e in KXmlGuiWindow::event (this=0x5555558cc8f0, ev=0x555555ed3f00) at /usr/src/debug/kxmlgui/kxmlgui-5.101.0/src/kxmlguiwindow.cpp:220
#24 0x00007ffff5d78b5c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5555558cc8f0, e=0x555555ed3f00) at kernel/qapplication.cpp:3640
#25 0x00007ffff4e8cf98 in QCoreApplication::notifyInternal2 (receiver=0x5555558cc8f0, event=0x555555ed3f00) at kernel/qcoreapplication.cpp:1064
#26 0x00007ffff4e8daa3 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x5555558cc8f0, event_type=77, data=0x555555693910) at kernel/qcoreapplication.cpp:1821
#27 0x00007ffff60af9df in QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=<optimized out>) at ../../include/QtWidgets/5.15.8/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:191
#28 QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=0x555555af2900) at ../../include/QtWidgets/5.15.8/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:186
#29 QGraphicsScenePrivate::_q_processDirtyItems (this=0x555555a5d9d0) at graphicsview/qgraphicsscene.cpp:516
#30 QGraphicsScene::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qgraphicsscene.cpp:197
#31 0x00007ffff4eb0bd0 in QObject::event (this=0x555555a81f00, e=0x7fffe4007b40) at kernel/qobject.cpp:1347
#32 0x00007ffff5d78b5c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555555a81f00, e=0x7fffe4007b40) at kernel/qapplication.cpp:3640
#33 0x00007ffff4e8cf98 in QCoreApplication::notifyInternal2 (receiver=0x555555a81f00, event=0x7fffe4007b40) at kernel/qcoreapplication.cpp:1064
#34 0x00007ffff4e8daa3 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x555555693910) at kernel/qcoreapplication.cpp:1821
#35 0x00007ffff4ed3ea8 in postEventSourceDispatch (s=0x5555556bd490) at kernel/qeventdispatcher_glib.cpp:277
#36 0x00007ffff3df187b in g_main_dispatch (context=0x7fffe8005010) at ../glib/glib/gmain.c:3454
#37 g_main_context_dispatch (context=0x7fffe8005010) at ../glib/glib/gmain.c:4172
#38 0x00007ffff3e48c89 in g_main_context_iterate.constprop.0 (context=0x7fffe8005010, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4248
#39 0x00007ffff3df0132 in g_main_context_iteration (context=0x7fffe8005010, may_block=1) at ../glib/glib/gmain.c:4313
#40 0x00007ffff4ed7c8c in QEventDispatcherGlib::processEvents (this=0x555555665350, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#41 0x00007ffff4e8574c in QEventLoop::exec (this=0x7fffffffdbc0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#42 0x00007ffff4e90269 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#43 0x00005555555e0a5b in main (argc=1, argv=0x7fffffffdf98) at /home/elvis/dev/kde/gwenview/app/main.cpp:213

I was trying to get a valgrind log, but it does not crash while running from valgrind.
Comment 15 Ben Bonacci 2023-03-06 10:56:37 UTC
*** Bug 466628 has been marked as a duplicate of this bug. ***
Comment 16 Bug Janitor Service 2023-03-10 00:52:25 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/gwenview/-/merge_requests/189
Comment 17 Nate Graham 2023-03-29 18:53:12 UTC
Git commit 5ddac2cc9ff426302771fb6c7aceae02953b945e by Nate Graham, on behalf of Nikita Karpei.
Committed on 29/03/2023 at 18:53.
Pushed by ngraham into branch 'master'.

Save a shallow copy of the original image when rotating
FIXED-IN: 23.04

The app crashes when trying to get an image from a document using
document->image(). Looks like it can be destroyed from another thread
so we should make a shallow copy of it. It's fast and fixes the crash.

M  +11   -8    lib/documentview/rasterimageitem.cpp
M  +1    -0    lib/documentview/rasterimageitem.h

https://invent.kde.org/graphics/gwenview/commit/5ddac2cc9ff426302771fb6c7aceae02953b945e
Comment 18 Nate Graham 2023-03-29 18:53:40 UTC
Git commit 8e8b025b79b44db957d164698b68681323b9a917 by Nate Graham, on behalf of Nikita Karpei.
Committed on 29/03/2023 at 18:53.
Pushed by ngraham into branch 'release/23.04'.

Save a shallow copy of the original image when rotating
FIXED-IN: 23.04

The app crashes when trying to get an image from a document using
document->image(). Looks like it can be destroyed from another thread
so we should make a shallow copy of it. It's fast and fixes the crash.


(cherry picked from commit 5ddac2cc9ff426302771fb6c7aceae02953b945e)

M  +11   -8    lib/documentview/rasterimageitem.cpp
M  +1    -0    lib/documentview/rasterimageitem.h

https://invent.kde.org/graphics/gwenview/commit/8e8b025b79b44db957d164698b68681323b9a917
Comment 19 Alex 2023-04-03 14:43:45 UTC Comment hidden (spam)
Comment 20 Nate Graham 2023-04-03 14:45:05 UTC Comment hidden (spam)
Comment 21 Nicolas Fella 2023-04-08 10:37:02 UTC
*** Bug 468273 has been marked as a duplicate of this bug. ***
Comment 22 Nicolas Fella 2023-04-10 12:35:52 UTC
*** Bug 468351 has been marked as a duplicate of this bug. ***
Comment 23 Nate Graham 2023-04-21 19:56:51 UTC
*** Bug 468763 has been marked as a duplicate of this bug. ***
Comment 24 Nicolas Fella 2023-05-14 21:31:25 UTC
*** Bug 469754 has been marked as a duplicate of this bug. ***
Comment 25 Nicolas Fella 2023-05-17 10:42:00 UTC
*** Bug 469605 has been marked as a duplicate of this bug. ***
Comment 26 Nicolas Fella 2023-05-31 11:20:43 UTC
*** Bug 470479 has been marked as a duplicate of this bug. ***
Comment 27 Nicolas Fella 2023-07-08 11:58:12 UTC
*** Bug 468426 has been marked as a duplicate of this bug. ***
Comment 28 Nicolas Fella 2023-07-08 11:58:26 UTC
*** Bug 471926 has been marked as a duplicate of this bug. ***
Comment 29 Nicolas Fella 2023-07-08 11:58:41 UTC
*** Bug 453207 has been marked as a duplicate of this bug. ***
Comment 30 Sadiq Mohamed 2023-11-29 10:48:10 UTC
Created attachment 163610 [details]
New crash information added by DrKonqi

gwenview (21.12.3) using Qt 5.15.2

- What I was doing when the application crashed:
I have Gwenview 21.12.3, with the following:

Operating System: openSUSE Leap 15.4
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.90.0
Qt Version: 5.15.2
Kernel Version: 5.14.21-150400.24.97-default (64-bit)
Graphics Platform: X11
Processors: 4 × Intel® Xeon® CPU 5150 @ 2.66GHz
Memory: 15.6 GiB of RAM
Graphics Processor: llvmpipe

All software installed from the official repos.

I have been experiencing this bug intermittently with Gwenview for at leaast 2 years. It seems to be very random and difficult to reproduce. Sometimes it will happen several times in a row. At others it won't happen for days or weeks. I use Gwenview nearly every day to look at photo's or graphic files.

-- Backtrace (Reduced):
#5  0x00007efc255de34e in memcpy (__len=13824, __src=0x7efbc70c9f10, __dest=<optimized out>) at /usr/include/bits/string_fortified.h:34
#6  QImage::copy (this=0x55b8981c0b10, r=...) at image/qimage.cpp:1239
#7  0x00007efc2a2d6412 in Gwenview::RasterImageItem::paint (this=0x55b89859b100, painter=0x7fffc4076920) at /usr/src/debug/gwenview5-21.12.3-bp154.1.31.x86_64/lib/documentview/rasterimageitem.cpp:106
#8  0x00007efc25fffb66 in QGraphicsScenePrivate::draw (this=this@entry=0x55b897db64f0, item=item@entry=0x55b89859b100, painter=painter@entry=0x7fffc4076920, viewTransform=<optimized out>, transformPtr=transformPtr@entry=0x55b898867eb0, exposedRegion=<optimized out>, widget=<optimized out>, opacity=opacity@entry=1, effectTransform=<optimized out>, wasDirtyParentSceneTransform=<optimized out>, drawItem=<optimized out>) at graphicsview/qgraphicsscene.cpp:4981
#9  0x00007efc2600034e in QGraphicsScenePrivate::drawSubtreeRecursive (this=this@entry=0x55b897db64f0, item=0x55b89859b100, painter=painter@entry=0x7fffc4076920, viewTransform=viewTransform@entry=0x0, exposedRegion=exposedRegion@entry=0x55b8981ad240, widget=<optimized out>, widget@entry=0x55b897f14e50, parentOpacity=parentOpacity@entry=1, effectTransform=0x0) at graphicsview/qgraphicsscene.cpp:4873
Comment 31 Nate Graham 2024-02-26 22:27:01 UTC
*** Bug 481837 has been marked as a duplicate of this bug. ***