Bug 455369 - Calendar event notifications lead to segfault if closed by notification button
Summary: Calendar event notifications lead to segfault if closed by notification button
Status: RESOLVED FIXED
Alias: None
Product: Reminder Daemon
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.20.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2022-06-15 22:14 UTC by Christian (Fuchs)
Modified: 2022-06-30 14:55 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (6.73 KB, text/plain)
2022-06-20 20:20 UTC, Cristiano Guadagnino
Details
New crash information added by DrKonqi (6.90 KB, text/plain)
2022-06-26 18:06 UTC, Szőts Ákos
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian (Fuchs) 2022-06-15 22:14:39 UTC
Application: kalendarac (5.20.2)

Qt Version: 5.15.3
Frameworks Version: 5.95.0
Operating System: Linux 5.17.13-300.fc36.x86_64 x86_64
Windowing System: X11
Distribution: Fedora Linux 36 (KDE Plasma)
DrKonqi: 5.25.0 [KCrashBackend]

-- Information about the crash:
Calender events that were previously handled by korgac now create regular notifications, which do provide a button to dismiss them. However, whenever I dismiss one via said button, the application crashes with a segfault. See attached bug report.

The crash can be reproduced every time.

-- Backtrace:
Application: Erinnerungen (kalendarac), signal: Segmentation fault

[KCrash Handler]
#4  0x00007fdb84e801a0 in QUtf8::convertFromUnicode(QChar const*, int) () from /lib64/libQt5Core.so.5
#5  0x00007fdb84cfa0b4 in QString::toUtf8_helper(QString const&) () from /lib64/libQt5Core.so.5
#6  0x00007fdb85807c6f in KConfigBase::isGroupImmutable(QString const&) const () from /lib64/libKF5ConfigCore.so.5
#7  0x00007fdb858121c3 in KConfigGroup::KConfigGroup(KConfigBase*, QString const&) () from /lib64/libKF5ConfigCore.so.5
#8  0x000055c42791f960 in KalendarAlarmClient::dismiss(AlarmNotification*) ()
#9  0x00007fdb84e5fc36 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#10 0x00007fdb85cf6a87 in KNotification::close() () from /lib64/libKF5Notifications.so.5
#11 0x00007fdb84e5fc36 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#12 0x00007fdb85cf3c33 in KNotificationPlugin::finished(KNotification*) () from /lib64/libKF5Notifications.so.5
#13 0x00007fdb85d0b349 in NotifyByPopup::onNotificationClosed(unsigned int, unsigned int) () from /lib64/libKF5Notifications.so.5
#14 0x00007fdb84e5fc36 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#15 0x00007fdb85d175e9 in OrgFreedesktopNotificationsInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /lib64/libKF5Notifications.so.5
#16 0x00007fdb85d17fdb in OrgFreedesktopNotificationsInterface::qt_metacall(QMetaObject::Call, int, void**) () from /lib64/libKF5Notifications.so.5
#17 0x00007fdb8513be7b in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QVector<int> const&, int) () from /lib64/libQt5DBus.so.5
#18 0x00007fdb84e56694 in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5
#19 0x00007fdb84e2c658 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5
#20 0x00007fdb84e2f9b4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt5Core.so.5
#21 0x00007fdb84e7d807 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5Core.so.5
#22 0x00007fdb82811faf in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#23 0x00007fdb828672c8 in g_main_context_iterate.constprop () from /lib64/libglib-2.0.so.0
#24 0x00007fdb8280f940 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#25 0x00007fdb84e7d2fa in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#26 0x00007fdb84e2b0ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5
#27 0x00007fdb84e33162 in QCoreApplication::exec() () from /lib64/libQt5Core.so.5
#28 0x000055c42791cefd in main ()
[Inferior 1 (process 2131) detached]

Reported using DrKonqi
Comment 1 Cristiano Guadagnino 2022-06-20 20:20:01 UTC
Created attachment 149966 [details]
New crash information added by DrKonqi

kalendarac (5.20.2) using Qt 5.15.2

The crash happens every time I start the system and notifications about overdue events appear.
I usually dismiss those notifications via the dismiss button, which leads to the crash.

-- Backtrace (Reduced):
#4  _mm_packus_epi16(long long __vector(2), long long __vector(2)) (__B=<error reading variable: Cannot access memory at address 0x5627e8f9cf94>, __A=<error reading variable: Cannot access memory at address 0x5627e8f9cf84>) at /usr/lib64/gcc/x86_64-suse-linux/12/include/emmintrin.h:1000
#5  simdEncodeAscii (end=<optimized out>, src=<optimized out>, nextAscii=<optimized out>, dst=<optimized out>) at codecs/qutfcodec.cpp:90
#6  QUtf8::convertFromUnicode (uc=<optimized out>, len=22053) at codecs/qutfcodec.cpp:383
#7  0x00007fca1a6c2c75 in qt_convert_to_utf8 (str=...) at text/qstring.cpp:5376
#8  QString::toUtf8_helper (str=...) at text/qstring.cpp:5368
Comment 2 Szőts Ákos 2022-06-26 18:06:15 UTC
Created attachment 150170 [details]
New crash information added by DrKonqi

kalendarac (5.20.2) using Qt 5.15.2

Perhaps a duplicate. New Dr. Konqui doesn't let me compare the backtraces, unfortunately.

-- Backtrace (Reduced):
#6  _mm_packus_epi16(long long __vector(2), long long __vector(2)) (__B=<error reading variable: Cannot access memory at address 0xab672e334540>, __A=<error reading variable: Cannot access memory at address 0xab672e334530>) at /usr/lib64/gcc/x86_64-suse-linux/12/include/emmintrin.h:1000
#7  simdEncodeAscii (end=<optimized out>, src=<optimized out>, nextAscii=<optimized out>, dst=<optimized out>) at codecs/qutfcodec.cpp:90
#8  QUtf8::convertFromUnicode (uc=<optimized out>, len=32712) at codecs/qutfcodec.cpp:383
#9  0x00007fc8ff57bc75 in qt_convert_to_utf8 (str=...) at text/qstring.cpp:5376
#10 QString::toUtf8_helper (str=...) at text/qstring.cpp:5368
Comment 3 Bug Janitor Service 2022-06-30 14:40:08 UTC
A possibly relevant merge request was started @ https://invent.kde.org/pim/akonadi-calendar/-/merge_requests/30
Comment 4 David Faure 2022-06-30 14:55:44 UTC
Git commit 26694e8c82562eac2fdbdb6fa85f56b27fca82a0 by David Faure.
Committed on 30/06/2022 at 14:32.
Pushed by dfaure into branch 'release/22.04'.

Fix crash when clicking on dismiss, sometimes.

client->dismiss(this) ends up setting client to nullptr, so
the disconnect() warns about null receiver and doesn't actually
disconnect.

(This is similar to 24f3853f14ec in master)
Related: bug 455472, bug 455886, bug 455258, bug 455583

M  +1    -1    reminder-daemon/alarmnotification.cpp

https://invent.kde.org/pim/akonadi-calendar/commit/26694e8c82562eac2fdbdb6fa85f56b27fca82a0