https://bugs.kde.org/show_bug.cgi?id=524947
Seb Burrell <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Seb Burrell <[email protected]> --- Created attachment 197015 --> https://bugs.kde.org/attachment.cgi?id=197015&action=edit 524947-plasmashell-after-deadlock-DaysModel-reset Confirming on a much smaller setup: a single Google account. The deadlock is the same as described. Setup: Fedora 44, Plasma 6.7.5, KF 6.30.0, Qt 6.11.2, akonadi-server 26.08.1, Wayland, NVIDIA 615.71.09. One akonadi_google_resource plus the default KMail-era agents, 13 agent processes in total (archivemail, followupreminder, indexing, maildir, maildispatcher, mailfilter, mailmerge, migration, newmailnotifier, sendlater, unifiedmailbox, google). The digital clock has pimevents enabled. On login, and reproducibly with `akonadictl restart`, plasmashell freezes for 2 x 25 s. akonadi_control logs one "org.freedesktop.DBus.Error.NoReply" about 50 s after "Akonadi server is now operational". Main-thread stacks taken with eu-stack while the deadlock was in progress: - akonadi_control: AgentManager::serviceOwnerChanged -> AgentInstance::obtainAgentInterface() -> QDBusPendingCallPrivate::waitForFinished() - akonadi_google_resource, akonadi_unifiedmailbox_agent: Akonadi::AgentManagerPrivate::readAgentTypes() -> waitForFinished() - every other agent: blocking QDBusPendingReply<QStringList> -> waitForFinished() - plasmashell: PimEventsPlugin -> AkonadiPimDataSource::onSettingsChanged -> EventModel::addCalendar -> CollectionFetchJob -> Session::defaultSession -> ServerManager::state -> AgentManager::self -> AgentManagerPrivate::readAgentTypes() (then readAgentInstances() on the second round) -> waitForFinished() So the cycle is the one in the description: akonadi_control blocks on an agent while the agents (and plasmashell) block on akonadi_control. Nothing in the agent setup is broken. The wallet was already unlocked during the restart reproduction, so this isn't a KWallet wait. A second effect, possibly worth its own bug: right after the deadlock clears, plasmashell stays frozen (CPU-bound, not blocked) for at least another 25 s per burst. Six such stalls happened within 3 minutes of one akonadictl restart. Main thread: DaysModel::onEventRemoved -> QAbstractItemModel::modelReset -> QQmlDelegateModel::handleModelReset -> delegate incubation -> Kirigami PlatformTheme::qmlAttachedProperties -> PlasmaTheme::PlasmaTheme -> PlasmaTheme::syncWindow -> QObject::connectImpl. Each event removed or added while the calendar re-syncs resets the whole days model, and every rebuilt delegate creates a new PlasmaTheme. This looks related to bug 510886. Attached: plasmashell stacks for the deadlock wait and for the post-deadlock DaysModel reset churn. -- You are receiving this mail because: You are watching all bug changes.
