| Summary: | Crash whil checking credentials in the configuration dialog | ||
|---|---|---|---|
| Product: | [Applications] amarok | Reporter: | Myriam Schweingruber <myriam> |
| Component: | general | Assignee: | Amarok Bugs <amarok-bugs-null> |
| Status: | RESOLVED WORKSFORME | ||
| Severity: | crash | CC: | cfeck, e.m.a.t.i.r.o.v, matej |
| Priority: | NOR | Keywords: | drkonqi |
| Version First Reported In: | 2.7-git | ||
| Target Milestone: | 2.9 | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Bug Depends on: | 323957 | ||
| Bug Blocks: | |||
|
Description
Myriam Schweingruber
2013-08-17 09:56:57 UTC
GpodderServiceSettings tries to open a wallet in its constructor (66-63), which creates a nested event loop (61), which (for whatever reason), tries to close the amarok config dialog (43), which then tries to delete GpodderServiceSettings (which is actually still being constructed...) I suggest to defer opening the wallet until after all objects have been created, and control is returned to the event loop. Use QTimer::singleShot() with a 0 ms value, or QMetaObject::invokeMethod() with a Qt::QueuedConnection. (In reply to comment #1) > GpodderServiceSettings tries to open a wallet in its constructor (66-63), > which creates a nested event loop (61), which (for whatever reason), tries > to close the amarok config dialog (43), which then tries to delete > GpodderServiceSettings (which is actually still being constructed...) > > I suggest to defer opening the wallet until after all objects have been > created, and control is returned to the event loop. Use QTimer::singleShot() > with a 0 ms value, or QMetaObject::invokeMethod() with a > Qt::QueuedConnection. Yeah, nested event loops are nasty, fortunately KWallet has async mode that doesn't use it. This is already implemented in LastFm service. There is a work-in-progress patch to abstract the code and port other services to it: https://git.reviewboard.kde.org/r/110426/ Tested in amarok v2.8.0. I didn't see kwallet dialog after opening settings page. After opening gpodder.net settings I see kwallet dialog. If I click yes all works, else dialogs will shown 3 times and then settings opening. -------- Sorry for my bad english :( This now works for me as of Amarok v2.8.0-339-g411509d, KDE 4.13.2 Closing correctly. |