Skip to content

systemtray: Check if a service is already added before processing QDBusReply

Fushan Wen requested to merge (removed):BUG443961 into master

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

Merge request reports