You folks mention the session bus. But when I've seen this bug (like my notes from bug 1480844), it's been the system dbus-daemon that takes 100% CPU.
I attached gdb to it once when this was happening. We seemed to be spending a chunk of time in get_recipients_from_list(), which iterates over every system DBus connection and sees if it is listening for a given signal, in order to pass it on if so. I don't *know* that the actual majority of time was in that function yet, I'm still digging there.
You folks mention the session bus. But when I've seen this bug (like my notes from bug 1480844), it's been the system dbus-daemon that takes 100% CPU.
I attached gdb to it once when this was happening. We seemed to be spending a chunk of time in get_recipients_ from_list( ), which iterates over every system DBus connection and sees if it is listening for a given signal, in order to pass it on if so. I don't *know* that the actual majority of time was in that function yet, I'm still digging there.