Bug 475387 - KPhotoAlbum crashes after Toggle full-screen preview in Annotations window for an image that is already deleted
Summary: KPhotoAlbum crashes after Toggle full-screen preview in Annotations window fo...
Status: VERIFIED FIXED
Alias: None
Product: kphotoalbum
Classification: Applications
Component: Annotation Dialog (show other bugs)
Version: 5.11.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KPhotoAlbum Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-08 23:32 UTC by Victor Lobo
Modified: 2023-10-16 23:34 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Victor Lobo 2023-10-08 23:32:29 UTC
SUMMARY
KPhotoAlbum crashes after Toggle full-screen preview in Annotations window for an image that is already deleted

STEPS TO REPRODUCE
1. Open KPhotoAlbum
2. Go to Thumbnail View
3. Open an Image/Video in Annotations window
4. Keep the Annotations window open and go back to the Thumbnail view and delete the same image/video (Press Delete key)
5. Select move to trash or delete from disk or remove from database and click OK (in the Removing Items dialog popup)
6. Go back to Annotations window and click on Toggle full-screen preview (Ctrl-Space)
7. 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-127-g5f528e40

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: Segmentation fault

[KCrash Handler]
#4  0x00000000004b1318 in DB::ImageInfo::isStacked (this=0x0) at /home/victor/kphotoalbum/DB/ImageInfo.h:144
#5  0x00000000004d721a in Viewer::ViewerWidget::load (this=0x2b9bf80) at /home/victor/kphotoalbum/Viewer/ViewerWidget.cpp:491
#6  0x00000000004d6bfe in Viewer::ViewerWidget::load (this=0x2b9bf80, list=..., index=0) at /home/victor/kphotoalbum/Viewer/ViewerWidget.cpp:435
#7  0x00000000005ee2e3 in AnnotationDialog::Dialog::togglePreview (this=0x2c30470) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:1502
#8  0x00000000005f7a3a 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)) 0x5ee1b2 <AnnotationDialog::Dialog::togglePreview()>, o=0x2c30470, arg=0x7fff5a180260) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#9  0x00000000005f6db4 in QtPrivate::FunctionPointer<void (AnnotationDialog::Dialog::*)()>::call<QtPrivate::List<>, void>(void (AnnotationDialog::Dialog::*)(), AnnotationDialog::Dialog*, void**) (f=(void (AnnotationDialog::Dialog::*)(AnnotationDialog::Dialog * const)) 0x5ee1b2 <AnnotationDialog::Dialog::togglePreview()>, o=0x2c30470, arg=0x7fff5a180260) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#10 0x00000000005f54c9 in QtPrivate::QSlotObject<void (AnnotationDialog::Dialog::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x3e164c0, r=0x2c30470, a=0x7fff5a180260, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#11 0x00007f9e64725812 in QtPrivate::QSlotObjectBase::call (a=0x7fff5a180260, r=0x2c30470, this=0x3e164c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false> (sender=0x3e16550, signal_index=4, argv=0x7fff5a180260) at kernel/qobject.cpp:3925
#13 0x00007f9e6471e47f in QMetaObject::activate (sender=sender@entry=0x3e16550, m=m@entry=0x7f9e658bacc0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff5a180260) at kernel/qobject.cpp:3985
#14 0x00007f9e6539e8b2 in QAction::triggered (this=this@entry=0x3e16550, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#15 0x00007f9e653a142f in QAction::activate (this=0x3e16550, event=<optimized out>) at kernel/qaction.cpp:1161
#16 0x00007f9e653a200d in QAction::event (e=<optimized out>, this=<optimized out>) at kernel/qaction.cpp:1086
#17 QAction::event (this=<optimized out>, e=<optimized out>) at kernel/qaction.cpp:1075
#18 0x00007f9e653a519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x3e16550, e=0x7fff5a180400) at kernel/qapplication.cpp:3640
#19 0x00007f9e646ed568 in QCoreApplication::notifyInternal2 (receiver=0x3e16550, event=0x7fff5a180400) at kernel/qcoreapplication.cpp:1064
#20 0x00007f9e646ed72e in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#21 0x00007f9e64bad671 in QShortcutMap::dispatchEvent (this=<optimized out>, e=<optimized out>) at kernel/qshortcutmap.cpp:675
#22 0x00007f9e64bae28b in QShortcutMap::tryShortcut (this=this@entry=0x2584288, e=e@entry=0x7fff5a1804c0) at kernel/qshortcutmap.cpp:343
#23 0x00007f9e64b53976 in QWindowSystemInterface::handleShortcutEvent (window=<optimized out>, timestamp=1957744, keyCode=32, modifiers=..., nativeScanCode=65, nativeVirtualKey=32, nativeModifiers=20, text=..., autorepeat=false, count=1) at kernel/qwindowsysteminterface.cpp:477
#24 0x00007f9e64b78d9d in QGuiApplicationPrivate::processKeyEvent (e=0x450caf0) at kernel/qguiapplication.cpp:2398
#25 0x00007f9e64b5036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#26 0x00007f9e58b1b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#27 0x00007f9e60d2b9d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#28 0x00007f9e60d2bde8 in ?? () from /lib64/libglib-2.0.so.0
#29 0x00007f9e60d2be7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#30 0x00007f9e647464a6 in QEventDispatcherGlib::processEvents (this=0x265eaa0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#31 0x00007f9e646ebffb in QEventLoop::exec (this=this@entry=0x7fff5a180800, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#32 0x00007f9e655ada07 in QDialog::exec (this=0x2c30470) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#33 0x00000000005e9820 in AnnotationDialog::Dialog::exec (this=0x2c30470) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:955
#34 0x00000000005e7acb in AnnotationDialog::Dialog::configure (this=0x2c30470, list=..., oneAtATime=true) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:766
#35 0x00000000005367d7 in MainWindow::Window::configImages (this=0x27c9600, list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:509
#36 0x0000000000536775 in MainWindow::Window::configureImages (list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:503
#37 0x00000000005366cc in MainWindow::Window::configureImages (this=0x27c9600, oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:497
#38 0x000000000053655b in MainWindow::Window::slotConfigureImagesOneAtATime (this=0x27c9600) at /home/victor/kphotoalbum/MainWindow/Window.cpp:483
#39 0x000000000054e3a8 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)) 0x53653e <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x27c9600, arg=0x7fff5a180c20) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#40 0x000000000054d9ed in QtPrivate::FunctionPointer<void (MainWindow::Window::*)()>::call<QtPrivate::List<>, void>(void (MainWindow::Window::*)(), MainWindow::Window*, void**) (f=(void (MainWindow::Window::*)(MainWindow::Window * const)) 0x53653e <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x27c9600, arg=0x7fff5a180c20) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#41 0x000000000054c169 in QtPrivate::QSlotObject<void (MainWindow::Window::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x2c12290, r=0x27c9600, a=0x7fff5a180c20, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#42 0x00007f9e64725812 in QtPrivate::QSlotObjectBase::call (a=0x7fff5a180c20, r=0x27c9600, this=0x2c12290) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#43 doActivate<false> (sender=0x2c123c0, signal_index=4, argv=0x7fff5a180c20) at kernel/qobject.cpp:3925
#44 0x00007f9e6471e47f in QMetaObject::activate (sender=sender@entry=0x2c123c0, m=m@entry=0x7f9e658bacc0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff5a180c20) at kernel/qobject.cpp:3985
#45 0x00007f9e6539e8b2 in QAction::triggered (this=this@entry=0x2c123c0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#46 0x00007f9e653a142f in QAction::activate (this=0x2c123c0, event=<optimized out>) at kernel/qaction.cpp:1161
#47 0x00007f9e65525ef2 in QMenuPrivate::activateCausedStack (this=this@entry=0x2cf9210, causedStack=..., action=action@entry=0x2c123c0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1384
#48 0x00007f9e6552dd23 in QMenuPrivate::activateAction (this=0x2cf9210, action=0x2c123c0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1461
#49 0x00007f9e653e6d68 in QWidget::event (this=0x7fff5a1818e0, event=0x7fff5a181210) at kernel/qwidget.cpp:9045
#50 0x00007f9e653a519e in QApplicationPrivate::notify_helper (this=this@entry=0x25841c0, receiver=receiver@entry=0x7fff5a1818e0, e=e@entry=0x7fff5a181210) at kernel/qapplication.cpp:3640
#51 0x00007f9e653ad5cf in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7fff5a181210) at kernel/qapplication.cpp:3084
#52 0x00007f9e646ed568 in QCoreApplication::notifyInternal2 (receiver=0x7fff5a1818e0, event=0x7fff5a181210) at kernel/qcoreapplication.cpp:1064
#53 0x00007f9e646ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#54 0x00007f9e653ab92e in QApplicationPrivate::sendMouseEvent (receiver=0x7fff5a1818e0, event=event@entry=0x7fff5a181210, alienWidget=<optimized out>, nativeWidget=0x7fff5a1818e0, buttonDown=buttonDown@entry=0x7f9e658f2330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622
#55 0x00007f9e654002ca in QWidgetWindow::handleMouseEvent (this=this@entry=0x2cf4620, event=event@entry=0x7fff5a1814c0) at kernel/qwidgetwindow.cpp:580
#56 0x00007f9e65402d1f in QWidgetWindow::event (this=0x2cf4620, event=0x7fff5a1814c0) at kernel/qwidgetwindow.cpp:300
#57 0x00007f9e653a519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x2cf4620, e=0x7fff5a1814c0) at kernel/qapplication.cpp:3640
#58 0x00007f9e646ed568 in QCoreApplication::notifyInternal2 (receiver=0x2cf4620, event=0x7fff5a1814c0) at kernel/qcoreapplication.cpp:1064
#59 0x00007f9e646ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#60 0x00007f9e64b7d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2d404f0) at kernel/qguiapplication.cpp:2285
#61 0x00007f9e64b5036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#62 0x00007f9e58b1b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#63 0x00007f9e60d2b9d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#64 0x00007f9e60d2bde8 in ?? () from /lib64/libglib-2.0.so.0
#65 0x00007f9e60d2be7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#66 0x00007f9e647464a6 in QEventDispatcherGlib::processEvents (this=0x265eaa0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#67 0x00007f9e646ebffb in QEventLoop::exec (this=this@entry=0x7fff5a181800, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#68 0x00007f9e6552b70f in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>) (this=0x2cf9210, p=..., action=0x0, positionFunction=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#69 0x00007f9e6552b82f in QMenu::exec (this=<optimized out>, p=..., action=<optimized out>) at widgets/qmenu.cpp:2686
#70 0x000000000054163e in MainWindow::Window::contextMenuEvent (this=0x27c9600, e=0x7fff5a181c30) at /home/victor/kphotoalbum/MainWindow/Window.cpp:1318
#71 0x00007f9e653e6d68 in QWidget::event (this=0x27c9600, event=0x7fff5a181c30) at kernel/qwidget.cpp:9045
#72 0x00007f9e6fbe5469 in KXmlGuiWindow::event(QEvent*) () from /lib64/libKF5XmlGui.so.5
#73 0x00000000005383c3 in MainWindow::Window::event (this=0x27c9600, event=0x7fff5a181c30) at /home/victor/kphotoalbum/MainWindow/Window.cpp:751
#74 0x00007f9e653a519e in QApplicationPrivate::notify_helper (this=this@entry=0x25841c0, receiver=receiver@entry=0x27c9600, e=e@entry=0x7fff5a181c30) at kernel/qapplication.cpp:3640
#75 0x00007f9e653adaaa in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7fff5a181e60) at kernel/qapplication.cpp:3246
#76 0x00007f9e646ed568 in QCoreApplication::notifyInternal2 (receiver=0x2b91990, event=0x7fff5a181e60) at kernel/qcoreapplication.cpp:1064
#77 0x00007f9e646ed5b2 in QCoreApplication::forwardEvent (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at kernel/qcoreapplication.cpp:1079
#78 0x00007f9e653fff59 in QWidgetWindow::handleMouseEvent (this=this@entry=0x2a7c5e0, event=event@entry=0x7fff5a182150) at kernel/qwidgetwindow.cpp:692
#79 0x00007f9e65402d1f in QWidgetWindow::event (this=0x2a7c5e0, event=0x7fff5a182150) at kernel/qwidgetwindow.cpp:300
#80 0x00007f9e653a519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x2a7c5e0, e=0x7fff5a182150) at kernel/qapplication.cpp:3640
#81 0x00007f9e646ed568 in QCoreApplication::notifyInternal2 (receiver=0x2a7c5e0, event=0x7fff5a182150) at kernel/qcoreapplication.cpp:1064
#82 0x00007f9e646ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#83 0x00007f9e64b7d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2b86dc0) at kernel/qguiapplication.cpp:2285
#84 0x00007f9e64b5036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#85 0x00007f9e58b1b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#86 0x00007f9e60d2b9d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#87 0x00007f9e60d2bde8 in ?? () from /lib64/libglib-2.0.so.0
#88 0x00007f9e60d2be7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#89 0x00007f9e647464a6 in QEventDispatcherGlib::processEvents (this=0x265eaa0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#90 0x00007f9e646ebffb in QEventLoop::exec (this=this@entry=0x7fff5a182480, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#91 0x00007f9e646f4490 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#92 0x0000000000472a10 in main (argc=2, argv=0x7fff5a182b88) at /home/victor/kphotoalbum/main.cpp:161
[Inferior 1 (process 8843) detached]
Comment 1 Johannes Zarl-Zierl 2023-10-09 20:41:52 UTC
Git commit c62626f6c4a5f42fc2518c75aae4665e901f9c33 by Johannes Zarl-Zierl.
Committed on 09/10/2023 at 22:38.
Pushed by johanneszarl into branch 'master'.

Discard images from annotation dialog if they are deleted.

This makes the annotation dialog behave like one would expect when an image
is deleted while being annotated:

Old behaviour: deleted images are still present in the annotation
dialog, leading to unclear semantics.

New behaviour: deleted images are removed from the dialog. The dialog is
closed when the last image is deleted.

Additionally, this fixes two crashes that are enabled by the old
behaviour:

Fix a crash when deleting the currently annotated image and then
toggling the fullscreen preview in the annotation window (#475387).

Fix a crash when deleting the currently annotated image and then
pressing delete in the annotation dialog (#475388).
Related: bug 475388

M  +26   -0    AnnotationDialog/Dialog.cpp
M  +8    -0    AnnotationDialog/Dialog.h

https://invent.kde.org/graphics/kphotoalbum/-/commit/c62626f6c4a5f42fc2518c75aae4665e901f9c33
Comment 2 Victor Lobo 2023-10-13 01:02:32 UTC
Reopening this bug since the following crash now occurs

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) in Annotations window
5. Keep the Annotations window open and go back to the Thumbnail view and delete the same image/video (Press Delete key)
6. Select move to trash or delete from disk or remove from database and click OK (in the Removing Items dialog popup)
7. Go back to Annotations window (now no longer in the full-screen view) and click on Toggle full-screen preview (Ctrl-Space)
8. Crash 

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

[KCrash Handler]
#4  0x00007f80d7e91e0c in __pthread_kill_implementation () from /lib64/libc.so.6
#5  0x00007f80d7e3f0e6 in raise () from /lib64/libc.so.6
#6  0x00007f80d7e268d7 in abort () from /lib64/libc.so.6
#7  0x00007f80d86bb4f9 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914
#8  QMessageLogger::fatal (this=this@entry=0x7ffd11fc5488, msg=msg@entry=0x7f80d89d2028 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qlogging.cpp:893
#9  0x00007f80d86ba78c in qt_assert_x (where=<optimized out>, what=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3399
#10 0x00000000005f291c in QList<DB::ImageInfo>::operator[] (this=0x2923b28, i=0) at /usr/include/qt5/QtCore/qlist.h:579
#11 0x00000000005eeb2b in AnnotationDialog::Dialog::togglePreview (this=0x2923ae0) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:1502
#12 0x00000000005f8b48 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)) 0x5eea80 <AnnotationDialog::Dialog::togglePreview()>, o=0x2923ae0, arg=0x7ffd11fc57a0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#13 0x00000000005f7e7c in QtPrivate::FunctionPointer<void (AnnotationDialog::Dialog::*)()>::call<QtPrivate::List<>, void>(void (AnnotationDialog::Dialog::*)(), AnnotationDialog::Dialog*, void**) (f=(void (AnnotationDialog::Dialog::*)(AnnotationDialog::Dialog * const)) 0x5eea80 <AnnotationDialog::Dialog::togglePreview()>, o=0x2923ae0, arg=0x7ffd11fc57a0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#14 0x00000000005f64a3 in QtPrivate::QSlotObject<void (AnnotationDialog::Dialog::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x30af980, r=0x2923ae0, a=0x7ffd11fc57a0, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#15 0x00007f80d8925812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd11fc57a0, r=0x2923ae0, this=0x30af980) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#16 doActivate<false> (sender=0x309f210, signal_index=13, argv=0x7ffd11fc57a0) at kernel/qobject.cpp:3925
#17 0x0000000000609e91 in AnnotationDialog::ImagePreviewWidget::togglePreview (this=0x309f210) at /home/victor/kphotoalbum/build/kphotoalbum_autogen/include/moc_ImagePreviewWidget.cpp:284
#18 0x00000000006092ec in AnnotationDialog::ImagePreviewWidget::toggleFullscreenPreview (this=0x309f210) at /home/victor/kphotoalbum/AnnotationDialog/ImagePreviewWidget.cpp:326
#19 0x00000000005f9ac3 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)) 0x6092d4 <AnnotationDialog::ImagePreviewWidget::toggleFullscreenPreview()>, o=0x309f210, arg=0x7ffd11fc59d0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#20 0x00000000005f9961 in QtPrivate::FunctionPointer<void (AnnotationDialog::ImagePreviewWidget::*)()>::call<QtPrivate::List<>, void>(void (AnnotationDialog::ImagePreviewWidget::*)(), AnnotationDialog::ImagePreviewWidget*, void**) (f=(void (AnnotationDialog::ImagePreviewWidget::*)(AnnotationDialog::ImagePreviewWidget * const)) 0x6092d4 <AnnotationDialog::ImagePreviewWidget::toggleFullscreenPreview()>, o=0x309f210, arg=0x7ffd11fc59d0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#21 0x00000000005f97df in QtPrivate::QSlotObject<void (AnnotationDialog::ImagePreviewWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x30a20e0, r=0x309f210, a=0x7ffd11fc59d0, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#22 0x00007f80d8925812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd11fc59d0, r=0x309f210, this=0x30a20e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#23 doActivate<false> (sender=0x30a11f0, signal_index=9, argv=0x7ffd11fc59d0) at kernel/qobject.cpp:3925
#24 0x00007f80d891e47f in QMetaObject::activate (sender=sender@entry=0x30a11f0, m=m@entry=0x7f80d9ac0280 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffd11fc59d0) at kernel/qobject.cpp:3985
#25 0x00007f80d9696ac2 in QAbstractButton::clicked (this=this@entry=0x30a11f0, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#26 0x00007f80d9696d2a in QAbstractButtonPrivate::emitClicked (this=0x30a1700) at widgets/qabstractbutton.cpp:416
#27 0x00007f80d9698567 in QAbstractButtonPrivate::click (this=0x30a1700) at widgets/qabstractbutton.cpp:409
#28 0x00007f80d9698777 in QAbstractButton::mouseReleaseEvent (this=0x30a11f0, e=0x7ffd11fc5f60) at widgets/qabstractbutton.cpp:1045
#29 0x00007f80d95e6d68 in QWidget::event (this=0x30a11f0, event=0x7ffd11fc5f60) at kernel/qwidget.cpp:9045
#30 0x00007f80d95a519e in QApplicationPrivate::notify_helper (this=this@entry=0x23b51c0, receiver=receiver@entry=0x30a11f0, e=e@entry=0x7ffd11fc5f60) at kernel/qapplication.cpp:3640
#31 0x00007f80d95ad5cf in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffd11fc5f60) at kernel/qapplication.cpp:3084
#32 0x00007f80d88ed568 in QCoreApplication::notifyInternal2 (receiver=0x30a11f0, event=0x7ffd11fc5f60) at kernel/qcoreapplication.cpp:1064
#33 0x00007f80d88ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#34 0x00007f80d95ab92e in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x30a11f0, event=event@entry=0x7ffd11fc5f60, alienWidget=<optimized out>, nativeWidget=0x2923ae0, buttonDown=buttonDown@entry=0x7f80d9af2330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622
#35 0x00007f80d95ff7fd in QWidgetWindow::handleMouseEvent (this=this@entry=0x3b79470, event=event@entry=0x7ffd11fc6210) at kernel/qwidgetwindow.cpp:684
#36 0x00007f80d9602d1f in QWidgetWindow::event (this=0x3b79470, event=0x7ffd11fc6210) at kernel/qwidgetwindow.cpp:300
#37 0x00007f80d95a519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x3b79470, e=0x7ffd11fc6210) at kernel/qapplication.cpp:3640
#38 0x00007f80d88ed568 in QCoreApplication::notifyInternal2 (receiver=0x3b79470, event=0x7ffd11fc6210) at kernel/qcoreapplication.cpp:1064
#39 0x00007f80d88ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#40 0x00007f80d8d7d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x313fcd0) at kernel/qguiapplication.cpp:2285
#41 0x00007f80d8d5036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#42 0x00007f80ccb1b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#43 0x00007f80d54b59d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#44 0x00007f80d54b5de8 in ?? () from /lib64/libglib-2.0.so.0
#45 0x00007f80d54b5e7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#46 0x00007f80d89464a6 in QEventDispatcherGlib::processEvents (this=0x248fe30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#47 0x00007f80d88ebffb in QEventLoop::exec (this=this@entry=0x7ffd11fc6540, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#48 0x00007f80d97ada07 in QDialog::exec (this=0x2923ae0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#49 0x00000000005ea0ee in AnnotationDialog::Dialog::exec (this=0x2923ae0) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:957
#50 0x00000000005e8399 in AnnotationDialog::Dialog::configure (this=0x2923ae0, list=..., oneAtATime=true) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:768
#51 0x0000000000536c57 in MainWindow::Window::configImages (this=0x25e7550, list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:509
#52 0x0000000000536bf5 in MainWindow::Window::configureImages (list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:503
#53 0x0000000000536b4c in MainWindow::Window::configureImages (this=0x25e7550, oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:497
#54 0x00000000005369db in MainWindow::Window::slotConfigureImagesOneAtATime (this=0x25e7550) at /home/victor/kphotoalbum/MainWindow/Window.cpp:483
#55 0x000000000054e828 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)) 0x5369be <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x25e7550, arg=0x7ffd11fc6960) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#56 0x000000000054de6d in QtPrivate::FunctionPointer<void (MainWindow::Window::*)()>::call<QtPrivate::List<>, void>(void (MainWindow::Window::*)(), MainWindow::Window*, void**) (f=(void (MainWindow::Window::*)(MainWindow::Window * const)) 0x5369be <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x25e7550, arg=0x7ffd11fc6960) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#57 0x000000000054c5e9 in QtPrivate::QSlotObject<void (MainWindow::Window::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x29e29e0, r=0x25e7550, a=0x7ffd11fc6960, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#58 0x00007f80d8925812 in QtPrivate::QSlotObjectBase::call (a=0x7ffd11fc6960, r=0x25e7550, this=0x29e29e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#59 doActivate<false> (sender=0x29e2b10, signal_index=4, argv=0x7ffd11fc6960) at kernel/qobject.cpp:3925
#60 0x00007f80d891e47f in QMetaObject::activate (sender=sender@entry=0x29e2b10, m=m@entry=0x7f80d9abacc0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd11fc6960) at kernel/qobject.cpp:3985
#61 0x00007f80d959e8b2 in QAction::triggered (this=this@entry=0x29e2b10, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#62 0x00007f80d95a142f in QAction::activate (this=0x29e2b10, event=<optimized out>) at kernel/qaction.cpp:1161
#63 0x00007f80d9725ef2 in QMenuPrivate::activateCausedStack (this=this@entry=0x2b43540, causedStack=..., action=action@entry=0x29e2b10, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1384
#64 0x00007f80d972dd23 in QMenuPrivate::activateAction (this=0x2b43540, action=0x29e2b10, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1461
#65 0x00007f80d95e6d68 in QWidget::event (this=0x7ffd11fc7620, event=0x7ffd11fc6f50) at kernel/qwidget.cpp:9045
#66 0x00007f80d95a519e in QApplicationPrivate::notify_helper (this=this@entry=0x23b51c0, receiver=receiver@entry=0x7ffd11fc7620, e=e@entry=0x7ffd11fc6f50) at kernel/qapplication.cpp:3640
#67 0x00007f80d95ad5cf in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffd11fc6f50) at kernel/qapplication.cpp:3084
#68 0x00007f80d88ed568 in QCoreApplication::notifyInternal2 (receiver=0x7ffd11fc7620, event=0x7ffd11fc6f50) at kernel/qcoreapplication.cpp:1064
#69 0x00007f80d88ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#70 0x00007f80d95ab92e in QApplicationPrivate::sendMouseEvent (receiver=0x7ffd11fc7620, event=event@entry=0x7ffd11fc6f50, alienWidget=<optimized out>, nativeWidget=0x7ffd11fc7620, buttonDown=buttonDown@entry=0x7f80d9af2330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622
#71 0x00007f80d96002ca in QWidgetWindow::handleMouseEvent (this=this@entry=0x2b61a60, event=event@entry=0x7ffd11fc7200) at kernel/qwidgetwindow.cpp:580
#72 0x00007f80d9602d1f in QWidgetWindow::event (this=0x2b61a60, event=0x7ffd11fc7200) at kernel/qwidgetwindow.cpp:300
#73 0x00007f80d95a519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x2b61a60, e=0x7ffd11fc7200) at kernel/qapplication.cpp:3640
#74 0x00007f80d88ed568 in QCoreApplication::notifyInternal2 (receiver=0x2b61a60, event=0x7ffd11fc7200) at kernel/qcoreapplication.cpp:1064
#75 0x00007f80d88ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#76 0x00007f80d8d7d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2adfbd0) at kernel/qguiapplication.cpp:2285
#77 0x00007f80d8d5036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#78 0x00007f80ccb1b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#79 0x00007f80d54b59d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#80 0x00007f80d54b5de8 in ?? () from /lib64/libglib-2.0.so.0
#81 0x00007f80d54b5e7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#82 0x00007f80d89464a6 in QEventDispatcherGlib::processEvents (this=0x248fe30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#83 0x00007f80d88ebffb in QEventLoop::exec (this=this@entry=0x7ffd11fc7540, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#84 0x00007f80d972b70f in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>) (this=0x2b43540, p=..., action=0x0, positionFunction=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#85 0x00007f80d972b82f in QMenu::exec (this=<optimized out>, p=..., action=<optimized out>) at widgets/qmenu.cpp:2686
#86 0x0000000000541abe in MainWindow::Window::contextMenuEvent (this=0x25e7550, e=0x7ffd11fc7970) at /home/victor/kphotoalbum/MainWindow/Window.cpp:1318
#87 0x00007f80d95e6d68 in QWidget::event (this=0x25e7550, event=0x7ffd11fc7970) at kernel/qwidget.cpp:9045
#88 0x00007f80e3e4e469 in KXmlGuiWindow::event(QEvent*) () from /lib64/libKF5XmlGui.so.5
#89 0x0000000000538843 in MainWindow::Window::event (this=0x25e7550, event=0x7ffd11fc7970) at /home/victor/kphotoalbum/MainWindow/Window.cpp:751
#90 0x00007f80d95a519e in QApplicationPrivate::notify_helper (this=this@entry=0x23b51c0, receiver=receiver@entry=0x25e7550, e=e@entry=0x7ffd11fc7970) at kernel/qapplication.cpp:3640
#91 0x00007f80d95adaaa in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffd11fc7ba0) at kernel/qapplication.cpp:3246
#92 0x00007f80d88ed568 in QCoreApplication::notifyInternal2 (receiver=0x2a346a0, event=0x7ffd11fc7ba0) at kernel/qcoreapplication.cpp:1064
#93 0x00007f80d88ed5b2 in QCoreApplication::forwardEvent (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at kernel/qcoreapplication.cpp:1079
#94 0x00007f80d95fff59 in QWidgetWindow::handleMouseEvent (this=this@entry=0x28ad340, event=event@entry=0x7ffd11fc7e90) at kernel/qwidgetwindow.cpp:692
#95 0x00007f80d9602d1f in QWidgetWindow::event (this=0x28ad340, event=0x7ffd11fc7e90) at kernel/qwidgetwindow.cpp:300
#96 0x00007f80d95a519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x28ad340, e=0x7ffd11fc7e90) at kernel/qapplication.cpp:3640
#97 0x00007f80d88ed568 in QCoreApplication::notifyInternal2 (receiver=0x28ad340, event=0x7ffd11fc7e90) at kernel/qcoreapplication.cpp:1064
#98 0x00007f80d88ed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#99 0x00007f80d8d7d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2b1b270) at kernel/qguiapplication.cpp:2285
#100 0x00007f80d8d5036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#101 0x00007f80ccb1b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#102 0x00007f80d54b59d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#103 0x00007f80d54b5de8 in ?? () from /lib64/libglib-2.0.so.0
#104 0x00007f80d54b5e7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#105 0x00007f80d89464a6 in QEventDispatcherGlib::processEvents (this=0x248fe30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#106 0x00007f80d88ebffb in QEventLoop::exec (this=this@entry=0x7ffd11fc81c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#107 0x00007f80d88f4490 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#108 0x0000000000472a30 in main (argc=2, argv=0x7ffd11fc88c8) at /home/victor/kphotoalbum/main.cpp:161
[Inferior 1 (process 3893) detached]
Comment 3 Victor Lobo 2023-10-13 01:04:47 UTC
A similar crash also occurs when the Map tab is clicked in the Annotations window

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) in Annotations window
5. Keep the Annotations window open and go back to the Thumbnail view and delete the same image/video (Press Delete key)
6. Select move to trash or delete from disk or remove from database and click OK (in the Removing Items dialog popup)
7. Go back to Annotations window (now no longer in the full-screen view) and click on the Map tab
8. Crash


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

[KCrash Handler]
#4  0x00007f9e29491e0c in __pthread_kill_implementation () from /lib64/libc.so.6
#5  0x00007f9e2943f0e6 in raise () from /lib64/libc.so.6
#6  0x00007f9e294268d7 in abort () from /lib64/libc.so.6
#7  0x00007f9e29cbb4f9 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914
#8  QMessageLogger::fatal (this=this@entry=0x7ffda3d88568, msg=msg@entry=0x7f9e29fd2028 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qlogging.cpp:893
#9  0x00007f9e29cba78c in qt_assert_x (where=<optimized out>, what=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3399
#10 0x0000000000599378 in QList<QExplicitlySharedDataPointer<DB::ImageInfo> >::operator[] (this=0x241a560, i=0) at /usr/include/qt5/QtCore/qlist.h:579
#11 0x00000000005f0203 in AnnotationDialog::Dialog::updateMapForCurrentImage (this=0x241a520) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:1762
#12 0x00000000005f066a in AnnotationDialog::Dialog::mapLoadingFinished (this=0x241a520, mapHasImages=false, allImagesHaveCoordinates=true) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:1855
#13 0x00000000005f051d in AnnotationDialog::Dialog::populateMap (this=0x241a520) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:1820
#14 0x00000000005f8b48 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)) 0x5f031c <AnnotationDialog::Dialog::populateMap()>, o=0x241a520, arg=0x3445088) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#15 0x00000000005f7e7c in QtPrivate::FunctionPointer<void (AnnotationDialog::Dialog::*)()>::call<QtPrivate::List<>, void>(void (AnnotationDialog::Dialog::*)(), AnnotationDialog::Dialog*, void**) (f=(void (AnnotationDialog::Dialog::*)(AnnotationDialog::Dialog * const)) 0x5f031c <AnnotationDialog::Dialog::populateMap()>, o=0x241a520, arg=0x3445088) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#16 0x00000000005f64a3 in QtPrivate::QSlotObject<void (AnnotationDialog::Dialog::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x39ab750, r=0x241a520, a=0x3445088, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#17 0x00007f9e29f19320 in QObject::event (this=0x241a520, e=0x3445040) at kernel/qobject.cpp:1347
#18 0x00007f9e2aba519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x241a520, e=0x3445040) at kernel/qapplication.cpp:3640
#19 0x00007f9e29eed568 in QCoreApplication::notifyInternal2 (receiver=0x241a520, event=0x3445040) at kernel/qcoreapplication.cpp:1064
#20 0x00007f9e29eed72e in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#21 0x00007f9e29ef0b61 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x1dfbd60) at kernel/qcoreapplication.cpp:1821
#22 0x00007f9e29ef10a8 in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680
#23 0x00007f9e29f46c93 in postEventSourceDispatch (s=0x1ec9500) at kernel/qeventdispatcher_glib.cpp:277
#24 0x00007f9e2672b9d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#25 0x00007f9e2672bde8 in ?? () from /lib64/libglib-2.0.so.0
#26 0x00007f9e2672be7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#27 0x00007f9e29f464a6 in QEventDispatcherGlib::processEvents (this=0x1ed8e20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#28 0x00007f9e29eebffb in QEventLoop::exec (this=this@entry=0x7ffda3d88b10, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#29 0x00007f9e2adada07 in QDialog::exec (this=0x241a520) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#30 0x00000000005ea0ee in AnnotationDialog::Dialog::exec (this=0x241a520) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:957
#31 0x00000000005e8399 in AnnotationDialog::Dialog::configure (this=0x241a520, list=..., oneAtATime=true) at /home/victor/kphotoalbum/AnnotationDialog/Dialog.cpp:768
#32 0x0000000000536c57 in MainWindow::Window::configImages (this=0x2042f90, list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:509
#33 0x0000000000536bf5 in MainWindow::Window::configureImages (list=..., oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:503
#34 0x0000000000536b4c in MainWindow::Window::configureImages (this=0x2042f90, oneAtATime=true) at /home/victor/kphotoalbum/MainWindow/Window.cpp:497
#35 0x00000000005369db in MainWindow::Window::slotConfigureImagesOneAtATime (this=0x2042f90) at /home/victor/kphotoalbum/MainWindow/Window.cpp:483
#36 0x000000000054e828 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)) 0x5369be <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x2042f90, arg=0x7ffda3d88f30) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:152
#37 0x000000000054de6d in QtPrivate::FunctionPointer<void (MainWindow::Window::*)()>::call<QtPrivate::List<>, void>(void (MainWindow::Window::*)(), MainWindow::Window*, void**) (f=(void (MainWindow::Window::*)(MainWindow::Window * const)) 0x5369be <MainWindow::Window::slotConfigureImagesOneAtATime()>, o=0x2042f90, arg=0x7ffda3d88f30) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:185
#38 0x000000000054c5e9 in QtPrivate::QSlotObject<void (MainWindow::Window::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x24b6960, r=0x2042f90, a=0x7ffda3d88f30, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:418
#39 0x00007f9e29f25812 in QtPrivate::QSlotObjectBase::call (a=0x7ffda3d88f30, r=0x2042f90, this=0x24b6960) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#40 doActivate<false> (sender=0x24b6a90, signal_index=4, argv=0x7ffda3d88f30) at kernel/qobject.cpp:3925
#41 0x00007f9e29f1e47f in QMetaObject::activate (sender=sender@entry=0x24b6a90, m=m@entry=0x7f9e2b0bacc0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffda3d88f30) at kernel/qobject.cpp:3985
#42 0x00007f9e2ab9e8b2 in QAction::triggered (this=this@entry=0x24b6a90, _t1=<optimized out>) at .moc/moc_qaction.cpp:376
#43 0x00007f9e2aba142f in QAction::activate (this=0x24b6a90, event=<optimized out>) at kernel/qaction.cpp:1161
#44 0x00007f9e2ad25ef2 in QMenuPrivate::activateCausedStack (this=this@entry=0x255f000, causedStack=..., action=action@entry=0x24b6a90, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1384
#45 0x00007f9e2ad2dd23 in QMenuPrivate::activateAction (this=0x255f000, action=0x24b6a90, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1461
#46 0x00007f9e2abe6d68 in QWidget::event (this=0x7ffda3d89bf0, event=0x7ffda3d89520) at kernel/qwidget.cpp:9045
#47 0x00007f9e2aba519e in QApplicationPrivate::notify_helper (this=this@entry=0x1dfe1c0, receiver=receiver@entry=0x7ffda3d89bf0, e=e@entry=0x7ffda3d89520) at kernel/qapplication.cpp:3640
#48 0x00007f9e2abad5cf in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffda3d89520) at kernel/qapplication.cpp:3084
#49 0x00007f9e29eed568 in QCoreApplication::notifyInternal2 (receiver=0x7ffda3d89bf0, event=0x7ffda3d89520) at kernel/qcoreapplication.cpp:1064
#50 0x00007f9e29eed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#51 0x00007f9e2abab92e in QApplicationPrivate::sendMouseEvent (receiver=0x7ffda3d89bf0, event=event@entry=0x7ffda3d89520, alienWidget=<optimized out>, nativeWidget=0x7ffda3d89bf0, buttonDown=buttonDown@entry=0x7f9e2b0f2330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2622
#52 0x00007f9e2ac002ca in QWidgetWindow::handleMouseEvent (this=this@entry=0x356e830, event=event@entry=0x7ffda3d897d0) at kernel/qwidgetwindow.cpp:580
#53 0x00007f9e2ac02d1f in QWidgetWindow::event (this=0x356e830, event=0x7ffda3d897d0) at kernel/qwidgetwindow.cpp:300
#54 0x00007f9e2aba519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x356e830, e=0x7ffda3d897d0) at kernel/qapplication.cpp:3640
#55 0x00007f9e29eed568 in QCoreApplication::notifyInternal2 (receiver=0x356e830, event=0x7ffda3d897d0) at kernel/qcoreapplication.cpp:1064
#56 0x00007f9e29eed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#57 0x00007f9e2a37d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x2b22e00) at kernel/qguiapplication.cpp:2285
#58 0x00007f9e2a35036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#59 0x00007f9e1e51b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#60 0x00007f9e2672b9d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#61 0x00007f9e2672bde8 in ?? () from /lib64/libglib-2.0.so.0
#62 0x00007f9e2672be7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#63 0x00007f9e29f464a6 in QEventDispatcherGlib::processEvents (this=0x1ed8e20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#64 0x00007f9e29eebffb in QEventLoop::exec (this=this@entry=0x7ffda3d89b10, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#65 0x00007f9e2ad2b70f in QMenuPrivate::exec(QPoint const&, QAction*, std::function<QPoint (QSize const&)>) (this=0x255f000, p=..., action=0x0, positionFunction=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#66 0x00007f9e2ad2b82f in QMenu::exec (this=<optimized out>, p=..., action=<optimized out>) at widgets/qmenu.cpp:2686
#67 0x0000000000541abe in MainWindow::Window::contextMenuEvent (this=0x2042f90, e=0x7ffda3d89f40) at /home/victor/kphotoalbum/MainWindow/Window.cpp:1318
#68 0x00007f9e2abe6d68 in QWidget::event (this=0x2042f90, event=0x7ffda3d89f40) at kernel/qwidget.cpp:9045
#69 0x00007f9e3558e469 in KXmlGuiWindow::event(QEvent*) () from /lib64/libKF5XmlGui.so.5
#70 0x0000000000538843 in MainWindow::Window::event (this=0x2042f90, event=0x7ffda3d89f40) at /home/victor/kphotoalbum/MainWindow/Window.cpp:751
#71 0x00007f9e2aba519e in QApplicationPrivate::notify_helper (this=this@entry=0x1dfe1c0, receiver=receiver@entry=0x2042f90, e=e@entry=0x7ffda3d89f40) at kernel/qapplication.cpp:3640
#72 0x00007f9e2abadaaa in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7ffda3d8a170) at kernel/qapplication.cpp:3246
#73 0x00007f9e29eed568 in QCoreApplication::notifyInternal2 (receiver=0x24160d0, event=0x7ffda3d8a170) at kernel/qcoreapplication.cpp:1064
#74 0x00007f9e29eed5b2 in QCoreApplication::forwardEvent (receiver=<optimized out>, event=<optimized out>, originatingEvent=<optimized out>) at kernel/qcoreapplication.cpp:1079
#75 0x00007f9e2abfff59 in QWidgetWindow::handleMouseEvent (this=this@entry=0x22f5fb0, event=event@entry=0x7ffda3d8a460) at kernel/qwidgetwindow.cpp:692
#76 0x00007f9e2ac02d1f in QWidgetWindow::event (this=0x22f5fb0, event=0x7ffda3d8a460) at kernel/qwidgetwindow.cpp:300
#77 0x00007f9e2aba519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x22f5fb0, e=0x7ffda3d8a460) at kernel/qapplication.cpp:3640
#78 0x00007f9e29eed568 in QCoreApplication::notifyInternal2 (receiver=0x22f5fb0, event=0x7ffda3d8a460) at kernel/qcoreapplication.cpp:1064
#79 0x00007f9e29eed73e in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
#80 0x00007f9e2a37d0eb in QGuiApplicationPrivate::processMouseEvent (e=0x3b95e00) at kernel/qguiapplication.cpp:2285
#81 0x00007f9e2a35036c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#82 0x00007f9e1e51b1aa in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#83 0x00007f9e2672b9d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#84 0x00007f9e2672bde8 in ?? () from /lib64/libglib-2.0.so.0
#85 0x00007f9e2672be7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#86 0x00007f9e29f464a6 in QEventDispatcherGlib::processEvents (this=0x1ed8e20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#87 0x00007f9e29eebffb in QEventLoop::exec (this=this@entry=0x7ffda3d8a790, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#88 0x00007f9e29ef4490 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#89 0x0000000000472a30 in main (argc=2, argv=0x7ffda3d8ae98) at /home/victor/kphotoalbum/main.cpp:161
[Inferior 1 (process 4657) detached]
Comment 4 Johannes Zarl-Zierl 2023-10-13 08:03:00 UTC
Git commit 3786a06ee0fc8c9edbf92bd3e4a12c752f5dbec1 by Johannes Zarl-Zierl.
Committed on 13/10/2023 at 09:57.
Pushed by johanneszarl into branch 'master'.

Fix crash when annotated image is deleted while full screen preview is active.

If the last image in the annotation dialog was deleted while the dialog
was showing the fullscreen preview, instead of closing the dialog as
expected, only the fullscreen preview was toggled.

This lead to the annotation dialog still showing the last image, even
though it should have been closed - thus triggering the same behaviour
as described in bug #475387.

M  +3    -2    AnnotationDialog/Dialog.cpp

https://invent.kde.org/graphics/kphotoalbum/-/commit/3786a06ee0fc8c9edbf92bd3e4a12c752f5dbec1
Comment 5 Johannes Zarl-Zierl 2023-10-13 08:04:29 UTC
Thanks, good catch!
Comment 6 Victor Lobo 2023-10-16 23:34:20 UTC
Fix is good. Thank you!