Bug 476131

Summary: KPhotoAlbum crashes after using Toggle full-screen preview, deleting image, resizing annotations window and then using Toggle full-screen preview again
Product: [Applications] kphotoalbum Reporter: Victor Lobo <victor.ip.lobo>
Component: Annotation DialogAssignee: KPhotoAlbum Bugs <kpabugs>
Status: VERIFIED FIXED    
Severity: crash    
Priority: NOR    
Version: 5.11.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Victor Lobo 2023-10-27 00:44:55 UTC
SUMMARY
KPhotoAlbum crashes after using Toggle full-screen preview, deleting image, resizing annotations window and then using Toggle full-screen preview again

STEPS TO REPRODUCE
1. Open KPhotoAlbum
2. Go to Thumbnail View
3. Open an Image/Video in Annotations window
4. Click on Toggle full-screen preview (Ctrl-Space)
5. Click Cancel in full-screen preview to return back to Annotations window
6. Click on Delete Image in Annotations window
7. Select move to trash or delete from disk or remove from database and click OK (in the Removing Items dialog popup) - screen comes back to Thumbnail View
8. Open another Image/Video in Annotations window
9. Resize the Annotations window (by using mouse to drag window edge or clicking Maximize/Restore button)
10. Click on Delete Image in Annotations window
11. Click on Toggle full-screen preview (Ctrl-Space)
12. Crash

OBSERVED RESULT
Crash

EXPECTED RESULT
No crash

SOFTWARE/OS VERSIONS
Linux: openSUSE Tumbleweed 20230906; Kernel Version: 6.4.12-1-default (64-bit)
KDE Plasma Version: 5.27.7
KDE Frameworks Version: 5.109.0
Qt Version: 5.15.10
KPhotoAlbum Version 5.11.0 (as installed from Opensuse Tumbleweed repository)
Also occurs in latest git version v5.11.0-155-gd1350e82

ADDITIONAL INFORMATION
1. Crash is reproducible every time the steps are followed.
2. Crash occurs even in the demo database.
3. Crash occurs for Images and Videos.


Backtrace:
Application: KPhotoAlbum (kphotoalbum), signal: Aborted

[KCrash Handler]
#4  0x00007f988e891e0c in __pthread_kill_implementation () from /lib64/libc.so.6
#5  0x00007f988e83f0e6 in raise () from /lib64/libc.so.6
#6  0x00007f988e8268d7 in abort () from /lib64/libc.so.6
#7  0x00007f988f0bb4f9 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914
#8  QMessageLogger::fatal (this=this@entry=0x7ffd3229e9b8, msg=msg@entry=0x7f988f3d2028 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qlogging.cpp:893
#9  0x00007f988f0ba78c in qt_assert_x (where=<optimized out>, what=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3399
#10 0x00000000004e2174 in QList<DB::FileName>::operator[] (this=0x2a41110, i=0) at /usr/include/qt5/QtCore/qlist.h:579
#11 0x00000000004d7874 in Viewer::ViewerWidget::setCaptionWithDetail (this=0x2a41040, detail=...) at /home/victor/kphotoalbum/Viewer/ViewerWidget.cpp:507
#12 0x00000000004e683c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (Viewer::ViewerWidget::*)(QString const&)>::call (f=(void (Viewer::ViewerWidget::*)(Viewer::ViewerWidget * const, const QString &)) 0x4d7840 <Viewer::ViewerWidget::setCaptionWithDetail(QString const&)>, o=0x2a41040, arg=0x7ffd3229ebf0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#13 0x00000000004e5e54 in QtPrivate::FunctionPointer<void (Viewer::ViewerWidget::*)(QString const&)>::call<QtPrivate::List<QString const&>, void> (f=(void (Viewer::ViewerWidget::*)(Viewer::ViewerWidget * const, const QString &)) 0x4d7840 <Viewer::ViewerWidget::setCaptionWithDetail(QString const&)>, o=0x2a41040, arg=0x7ffd3229ebf0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#14 0x00000000004e4aa3 in QtPrivate::QSlotObject<void (Viewer::ViewerWidget::*)(QString const&), QtPrivate::List<QString const&>, void>::impl (which=1, this_=0x2f55760, r=0x2a41040, a=0x7ffd3229ebf0, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#15 0x00007f988f325812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd3229ebf0, r=0x2a41040, this=0x2f55760) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#16 doActivate<false> (sender=0x2bd5ba0, signal_index=9, argv=0x7ffd3229ebf0) at kernel/qobject.cpp:3925
#17 0x00000000004ed7e9 in Viewer::ImageDisplay::setCaptionInfo (this=0x2bd5ba0, _t1=...) at /home/victor/kphotoalbum/build/kphotoalbum_autogen/include/moc_ImageDisplay.cpp:222
#18 0x00000000004eaff3 in Viewer::ImageDisplay::updateZoomCaption (this=0x2bd5ba0) at /home/victor/kphotoalbum/Viewer/ImageDisplay.cpp:452
#19 0x00000000004e9fcc in Viewer::ImageDisplay::cropAndScale (this=0x2bd5ba0) at /home/victor/kphotoalbum/Viewer/ImageDisplay.cpp:277
#20 0x00000000004e8b32 in Viewer::ImageDisplay::resizeEvent (this=0x2bd5ba0, event=0x7ffd3229efa0) at /home/victor/kphotoalbum/Viewer/ImageDisplay.cpp:142
#21 0x00007f988ffe734a in QWidget::event (this=0x2bd5ba0, event=0x7ffd3229efa0) at kernel/qwidget.cpp:8835
#22 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x2bd5ba0, e=0x7ffd3229efa0) at kernel/qapplication.cpp:3640
#23 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x2bd5ba0, event=0x7ffd3229efa0) at kernel/qcoreapplication.cpp:1064
#24 0x00007f988f2ed72e in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#25 0x00007f988ffdee86 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=this@entry=0x2b99d70, recursive=recursive@entry=false, disableUpdates=<optimized out>, disableUpdates@entry=false) at kernel/qwidget.cpp:7737
#26 0x00007f988ffe3883 in QWidgetPrivate::show_helper (this=0x2b99d70) at kernel/qwidget.cpp:7788
#27 0x00007f988ffe369b in QWidgetPrivate::show_recursive (this=<optimized out>) at kernel/qwidget.cpp:7718
#28 0x00007f988ffe3829 in QWidgetPrivate::showChildren (this=this@entry=0x2b86f10, spontaneous=spontaneous@entry=false) at kernel/qwidget.h:132
#29 0x00007f988ffe389f in QWidgetPrivate::show_helper (this=this@entry=0x2b86f10) at kernel/qwidget.cpp:7794
#30 0x00007f988ffe6813 in QWidgetPrivate::setVisible (this=0x2b86f10, visible=<optimized out>) at kernel/qwidget.cpp:8137
#31 0x00007f988ffcb340 in QStackedLayout::setCurrentIndex (this=0x2bbf850, index=0) at kernel/qstackedlayout.cpp:323
#32 0x00000000005eeffd in AnnotationDialog::Dialog::togglePreview (this=0x2a837d0) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:1475
#33 0x00000000005f8c56 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (AnnotationDialog::Dialog::*)()>::call(void (AnnotationDialog::Dialog::*)(), AnnotationDialog::Dialog*, void**) (f=(void (AnnotationDialog::Dialog::*)(AnnotationDialog::Dialog * const)) 0x5eef1c <AnnotationDialog::Dialog::togglePreview()>, o=0x2a837d0, arg=0x7ffd3229f4d0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#34 0x00000000005f7f8a in QtPrivate::FunctionPointer<void (AnnotationDialog::Dialog::*)()>::call<QtPrivate::List<>, void>(void (AnnotationDialog::Dialog::*)(), AnnotationDialog::Dialog*, void**) (f=(void (AnnotationDialog::Dialog::*)(AnnotationDialog::Dialog * const)) 0x5eef1c <AnnotationDialog::Dialog::togglePreview()>, o=0x2a837d0, arg=0x7ffd3229f4d0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#35 0x00000000005f6695 in QtPrivate::QSlotObject<void (AnnotationDialog::Dialog::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x3160350, r=0x2a837d0, a=0x7ffd3229f4d0, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#36 0x00007f988f325812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd3229f4d0, r=0x2a837d0, this=0x3160350) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#37 doActivate<false> (sender=0x314f870, signal_index=12, argv=0x7ffd3229f4d0) at kernel/qobject.cpp:3925
#38 0x0000000000609dfd in AnnotationDialog::ImagePreviewWidget::togglePreview (this=0x314f870) at /home/victor/kphotoalbum/build/kphotoalbum_autogen/include/moc_ImagePreviewWidget.cpp:264
#39 0x0000000000609330 in AnnotationDialog::ImagePreviewWidget::toggleFullscreenPreview (this=0x314f870) at /home/victor/kphotoalbum/AnnotationDialog/ImagePreviewWidget.cpp:317
#40 0x00000000005f9bd1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (AnnotationDialog::ImagePreviewWidget::*)()>::call(void (AnnotationDialog::ImagePreviewWidget::*)(), AnnotationDialog::ImagePreviewWidget*, void**) (f=(void (AnnotationDialog::ImagePreviewWidget::*)(AnnotationDialog::ImagePreviewWidget * const)) 0x609318 <AnnotationDialog::ImagePreviewWidget::toggleFullscreenPreview()>, o=0x314f870, arg=0x7ffd3229f700) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#41 0x00000000005f9a6f in QtPrivate::FunctionPointer<void (AnnotationDialog::ImagePreviewWidget::*)()>::call<QtPrivate::List<>, void>(void (AnnotationDialog::ImagePreviewWidget::*)(), AnnotationDialog::ImagePreviewWidget*, void**) (f=(void (AnnotationDialog::ImagePreviewWidget::*)(AnnotationDialog::ImagePreviewWidget * const)) 0x609318 <AnnotationDialog::ImagePreviewWidget::toggleFullscreenPreview()>, o=0x314f870, arg=0x7ffd3229f700) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#42 0x00000000005f98ed in QtPrivate::QSlotObject<void (AnnotationDialog::ImagePreviewWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x3152740, r=0x314f870, a=0x7ffd3229f700, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#43 0x00007f988f325812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd3229f700, r=0x314f870, this=0x3152740) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#44 doActivate<false> (sender=0x3151850, signal_index=9, argv=0x7ffd3229f700) at kernel/qobject.cpp:3925
#45 0x00007f988f31e47f in QMetaObject::activate (sender=sender@entry=0x3151850, m=m@entry=0x7f98904c0280 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffd3229f700) at kernel/qobject.cpp:3985
#46 0x00007f9890096ac2 in QAbstractButton::clicked (this=this@entry=0x3151850, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#47 0x00007f9890096d2a in QAbstractButtonPrivate::emitClicked (this=0x3151d60) at widgets/qabstractbutton.cpp:416
#48 0x00007f9890098567 in QAbstractButtonPrivate::click (this=0x3151d60) at widgets/qabstractbutton.cpp:409
#49 0x00007f9890098777 in QAbstractButton::mouseReleaseEvent (this=0x3151850, e=0x7ffd3229fc90) at widgets/qabstractbutton.cpp:1045
#50 0x00007f988ffe6d68 in QWidget::event (this=0x3151850, event=0x7ffd3229fc90) at kernel/qwidget.cpp:9045
#51 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=this@entry=0x24501e0, receiver=receiver@entry=0x3151850, e=e@entry=0x7ffd3229fc90) at kernel/qapplication.cpp:3640
#52 0x00007f988ffad5cf in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffd3229fc90) at kernel/qapplication.cpp:3084
#53 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x3151850, event=0x7ffd3229fc90) at kernel/qcoreapplication.cpp:1064
#54 0x00007f988f2ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#55 0x00007f988ffab92e in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x3151850, event=event@entry=0x7ffd3229fc90, alienWidget=<optimized out>, nativeWidget=0x2a837d0, buttonDown=buttonDown@entry=0x7f98904f2330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622
#56 0x00007f988ffff7fd in QWidgetWindow::handleMouseEvent (this=this@entry=0x3c41e70, event=event@entry=0x7ffd3229ff40) at kernel/qwidgetwindow.cpp:684
#57 0x00007f9890002d1f in QWidgetWindow::event (this=0x3c41e70, event=0x7ffd3229ff40) at kernel/qwidgetwindow.cpp:300
#58 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x3c41e70, e=0x7ffd3229ff40) at kernel/qapplication.cpp:3640
#59 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x3c41e70, event=0x7ffd3229ff40) at kernel/qcoreapplication.cpp:1064
#60 0x00007f988f2ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#61 0x00007f988f77d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x3929610) at kernel/qguiapplication.cpp:2285
#62 0x00007f988f75036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#63 0x00007f988191b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#64 0x00007f988bf13ef0 in ?? () from /lib64/libglib-2.0.so.0
#65 0x00007f988bf15b18 in ?? () from /lib64/libglib-2.0.so.0
#66 0x00007f988bf161cc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#67 0x00007f988f3464a6 in QEventDispatcherGlib::processEvents (this=0x252aa40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#68 0x00007f988f2ebffb in QEventLoop::exec (this=this@entry=0x7ffd322a0270, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#69 0x00007f98901ada07 in QDialog::exec (this=0x2a837d0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#70 0x00000000005ea84c in AnnotationDialog::Dialog::exec (this=0x2a837d0) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:962
#71 0x00000000005e8b0e in AnnotationDialog::Dialog::configure (this=0x2a837d0, list=..., oneAtATime=true) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:774
#72 0x0000000000537507 in MainWindow::Window::configImages (this=0x26a2da0, list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:509
#73 0x00000000005374a5 in MainWindow::Window::configureImages (list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:503
#74 0x00000000005373fc in MainWindow::Window::configureImages (this=0x26a2da0, oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:497
#75 0x000000000053728b in MainWindow::Window::slotConfigureImagesOneAtATime (this=0x26a2da0) at /home/victor/kphotoalbum/MainWindow/Window.cpp:483
#76 0x000000000054f0d8 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MainWindow::Window::*)()>::call(void (MainWindow::Window::*)(), MainWindow::Window*, void**) (f=(void (MainWindow::Window::*)(MainWindow::Window * const)) 0x53726e <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x26a2da0, arg=0x7ffd322a0690) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#77 0x000000000054e71d in QtPrivate::FunctionPointer<void (MainWindow::Window::*)()>::call<QtPrivate::List<>, void>(void (MainWindow::Window::*)(), MainWindow::Window*, void**) (f=(void (MainWindow::Window::*)(MainWindow::Window * const)) 0x53726e <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x26a2da0, arg=0x7ffd322a0690) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#78 0x000000000054ce99 in QtPrivate::QSlotObject<void (MainWindow::Window::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x2c46570, r=0x26a2da0, a=0x7ffd322a0690, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#79 0x00007f988f325812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd322a0690, r=0x26a2da0, this=0x2c46570) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#80 doActivate<false> (sender=0x2c466a0, signal_index=4, argv=0x7ffd322a0690) at kernel/qobject.cpp:3925
#81 0x00007f988f31e47f in QMetaObject::activate (sender=sender@entry=0x2c466a0, m=m@entry=0x7f98904bacc0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd322a0690) at kernel/qobject.cpp:3985
#82 0x00007f988ff9e8b2 in QAction::triggered (this=this@entry=0x2c466a0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#83 0x00007f988ffa142f in QAction::activate (this=0x2c466a0, event=<optimized out>) at kernel/qaction.cpp:1161
#84 0x00007f9890125ef2 in QMenuPrivate::activateCausedStack (this=this@entry=0x42174f0, causedStack=..., action=action@entry=0x2c466a0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1384
#85 0x00007f989012dd23 in QMenuPrivate::activateAction (this=0x42174f0, action=0x2c466a0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1461
#86 0x00007f988ffe6d68 in QWidget::event (this=0x7ffd322a1350, event=0x7ffd322a0c80) at kernel/qwidget.cpp:9045
#87 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=this@entry=0x24501e0, receiver=receiver@entry=0x7ffd322a1350, e=e@entry=0x7ffd322a0c80) at kernel/qapplication.cpp:3640
#88 0x00007f988ffad5cf in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffd322a0c80) at kernel/qapplication.cpp:3084
#89 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x7ffd322a1350, event=0x7ffd322a0c80) at kernel/qcoreapplication.cpp:1064
#90 0x00007f988f2ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#91 0x00007f988ffab92e in QApplicationPrivate::sendMouseEvent (receiver=0x7ffd322a1350, event=event@entry=0x7ffd322a0c80, alienWidget=<optimized out>, nativeWidget=0x7ffd322a1350, buttonDown=buttonDown@entry=0x7f98904f2330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622
#92 0x00007f98900002ca in QWidgetWindow::handleMouseEvent (this=this@entry=0x2c17330, event=event@entry=0x7ffd322a0f30) at kernel/qwidgetwindow.cpp:580
#93 0x00007f9890002d1f in QWidgetWindow::event (this=0x2c17330, event=0x7ffd322a0f30) at kernel/qwidgetwindow.cpp:300
#94 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x2c17330, e=0x7ffd322a0f30) at kernel/qapplication.cpp:3640
#95 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x2c17330, event=0x7ffd322a0f30) at kernel/qcoreapplication.cpp:1064
#96 0x00007f988f2ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#97 0x00007f988f77d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2f45c60) at kernel/qguiapplication.cpp:2285
#98 0x00007f988f75036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#99 0x00007f988191b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#100 0x00007f988bf13ef0 in ?? () from /lib64/libglib-2.0.so.0
#101 0x00007f988bf15b18 in ?? () from /lib64/libglib-2.0.so.0
#102 0x00007f988bf161cc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#103 0x00007f988f3464a6 in QEventDispatcherGlib::processEvents (this=0x252aa40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#104 0x00007f988f2ebffb in QEventLoop::exec (this=this@entry=0x7ffd322a1270, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#105 0x00007f989012b70f in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>) (this=0x42174f0, p=..., action=0x0, positionFunction=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#106 0x00007f989012b82f in QMenu::exec (this=<optimized out>, p=..., action=<optimized out>) at widgets/qmenu.cpp:2686
#107 0x000000000054236e in MainWindow::Window::contextMenuEvent (this=0x26a2da0, e=0x7ffd322a16a0) at /home/victor/kphotoalbum/MainWindow/Window.cpp:1319
#108 0x00007f988ffe6d68 in QWidget::event (this=0x26a2da0, event=0x7ffd322a16a0) at kernel/qwidget.cpp:9045
#109 0x00007f989a928469 in KXmlGuiWindow::event(QEvent*) () from /lib64/libKF5XmlGui.so.5
#110 0x00000000005390f3 in MainWindow::Window::event (this=0x26a2da0, event=0x7ffd322a16a0) at /home/victor/kphotoalbum/MainWindow/Window.cpp:752
#111 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=this@entry=0x24501e0, receiver=receiver@entry=0x26a2da0, e=e@entry=0x7ffd322a16a0) at kernel/qapplication.cpp:3640
#112 0x00007f988ffadaaa in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffd322a18d0) at kernel/qapplication.cpp:3246
#113 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x2aea710, event=0x7ffd322a18d0) at kernel/qcoreapplication.cpp:1064
#114 0x00007f988f2ed5b2 in QCoreApplication::forwardEvent (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at kernel/qcoreapplication.cpp:1079
#115 0x00007f988fffff59 in QWidgetWindow::handleMouseEvent (this=this@entry=0x2963ca0, event=event@entry=0x7ffd322a1bc0) at kernel/qwidgetwindow.cpp:692
#116 0x00007f9890002d1f in QWidgetWindow::event (this=0x2963ca0, event=0x7ffd322a1bc0) at kernel/qwidgetwindow.cpp:300
#117 0x00007f988ffa519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x2963ca0, e=0x7ffd322a1bc0) at kernel/qapplication.cpp:3640
#118 0x00007f988f2ed568 in QCoreApplication::notifyInternal2 (receiver=0x2963ca0, event=0x7ffd322a1bc0) at kernel/qcoreapplication.cpp:1064
#119 0x00007f988f2ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#120 0x00007f988f77d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2b535a0) at kernel/qguiapplication.cpp:2285
#121 0x00007f988f75036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#122 0x00007f988191b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#123 0x00007f988bf13ef0 in ?? () from /lib64/libglib-2.0.so.0
#124 0x00007f988bf15b18 in ?? () from /lib64/libglib-2.0.so.0
#125 0x00007f988bf161cc in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#126 0x00007f988f3464a6 in QEventDispatcherGlib::processEvents (this=0x252aa40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#127 0x00007f988f2ebffb in QEventLoop::exec (this=this@entry=0x7ffd322a1ef0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#128 0x00007f988f2f4490 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#129 0x0000000000472a30 in main (argc=2, argv=0x7ffd322a25f8) at /home/victor/kphotoalbum/main.cpp:161
[Inferior 1 (process 15020) detached]
Comment 1 Johannes Zarl-Zierl 2023-10-29 23:18:19 UTC
Git commit b400415a37e2d0285c277f678876c9202f2e14da by Johannes Zarl-Zierl.
Committed on 30/10/2023 at 00:18.
Pushed by johanneszarl into branch 'master'.

Fix crash in ViewerWidget

In addition to fixing bug #476131, this commit aims to prevent similar
bugs in all of the ViewerWidget methods.

M  +3    -3    Viewer/ImageDisplay.cpp
M  +2    -2    Viewer/ImageDisplay.h
M  +64   -17   Viewer/ViewerWidget.cpp
M  +11   -0    Viewer/ViewerWidget.h

https://invent.kde.org/graphics/kphotoalbum/-/commit/b400415a37e2d0285c277f678876c9202f2e14da
Comment 2 Victor Lobo 2023-11-05 00:38:52 UTC
Thank you! The fix works.