Summary: | Plasma crashed while Amarok was closing | ||
---|---|---|---|
Product: | [Unmaintained] plasma4 | Reporter: | Steven Black <blacks> |
Component: | widget-systemtray | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | agateau, aseigo, asraniel, biasquez, imaginationsway, kde, troptor |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Steven Black
2010-05-10 21:23:35 UTC
technically this is an upstream crash in dbusmenu-qt (so i'm CC'ing Aurélien, the developer of that lib) ... looking at it, i'm guessing the problem is in waitForWatcher(QDBusPendingCallWatcher *watcher, int maxWait) where it goes back to the event loop with the rather dangerous QCoreApplication::processEvents method. it seems what is happening is that the watcher is getting deleted (due to the call being completed) but that happens while the event loop is still processing events. so waitForWatcher comes back and *boom*, the watcher object (and therefore it's dptr) is no longer valid. Aurélien: why is it blocking on user events while the update happens? can't the finished() signal of the watcher be used to check for completion and not bother with blocking user interaction? DBusMenuImporter::slotMenuAboutToShow() is called when the menu is about to show. This means that as soon as we return from this slot, the menu appears. We want the menu to be completely filled, so we wait for the application to respond to the AboutToShow() method call so that we can update the menu before showing it, otherwise the menu would be shown half-empty and then populate itself while visible. I am going to give a try at reproducing this with a test case. *** Bug 240531 has been marked as a duplicate of this bug. *** Aurelien do you have some news about this bug ? (In reply to comment #4) > Aurelien do you have some news about this bug ? I just gave it another try and was able to somehow reproduce it. It should be fixed with commit 505a010. Please reopen if bug comes again. *** Bug 249460 has been marked as a duplicate of this bug. *** *** Bug 267109 has been marked as a duplicate of this bug. *** |