The source project of this merge request has been removed.
systemtray: Check if a service is already added before processing QDBusReply
Due to async nature of QDBusPendingReply
, services could be already registered by QDBusServiceWatcher
when the pending reply takes a long time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered
signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished
, which will make the same service added twice and crash plasmashell.
We need to check if a service is already added in m_sniServices
before processing registered items in QDBusReply
.
Thank @kmaterka for pointng out the right fix.
BUG: 443961 FIXED-IN: 5.23.4
Edited by Fushan Wen