Summary: | Kopete crashes when closing wallet | ||
---|---|---|---|
Product: | [Unmaintained] kopete | Reporter: | Raphael Kubo da Costa <rakuco> |
Component: | general | Assignee: | Kopete Developers <kopete-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde-bugs, lemma, rdieter, renda.krell |
Priority: | NOR | ||
Version: | SVN | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | patch to fix this bug in kopete |
Description
Raphael Kubo da Costa
2008-06-27 06:17:44 UTC
I can confirm this bug. It stems from the recent changes in kwalletd. I'll look into it. Created attachment 25660 [details]
patch to fix this bug in kopete
This bug stems from a problem with the destruction of static objects.
KWallet::Wallet uses a static which gets destructed before the function-static
Kopete::WalletManager gets destructed. I also have a fix for kwallet to not
crash but basically kopete needs a fix as well because:
- without it the wallet will not be closed
- I think closing a wallet in that state is no longer possible as the main
event-loop is already gone.
The bug seems to have been fixed as of rev825570. No, it's not yet fixed. I just implemented a work-around in kwalletd so it doesn't crash. The problem is still visible though in that "kopete" doesn't close the wallet it opened - you can even see it's still in the list of programs using it after kopete already exited. :) Thus I'll reduce severity to normal and reopen. *** Bug 165562 has been marked as a duplicate of this bug. *** *** Bug 165608 has been marked as a duplicate of this bug. *** SVN commit 882694 by mleupold: 1. Implement session handling for applications using the KWallet API. If an application with an open wallet exits or even crashes, kwalletd will know and close the wallet (if autoclose if last client exits is set). For this to work I added the handleSession parameter to the openAsync call. Clients not using the API can continue to use the old DBus open call (no changes needed). Drawback: If an application exits/crashes while the password entry dialog is shown, the wallet will still be opened (albeit autoclosed afterwards). I don't intend to change this as it would be too messy and this cornercase is just not important enough. 2. Implement asynchroneous handling of openPath calls. openPath now uses transactions as well (almost identical to openAsync). 3. Create tests for the new changes and one for tracking concurrency problems (kwalletmany). BUG: 165079 M +8 -0 kdebase/runtime/kwalletd/backend/kwalletbackend.cc M +1 -1 kdebase/runtime/kwalletd/backend/kwalletbackend.h M +317 -95 kdebase/runtime/kwalletd/kwalletd.cpp M +42 -11 kdebase/runtime/kwalletd/kwalletd.h M +8 -4 kdebase/runtime/kwalletd/kwalletdadaptor.h M +30 -0 kdebase/runtime/kwalletd/tests/CMakeLists.txt A kdebase/runtime/kwalletd/tests/kwalletautoclose.cpp [License: LGPL (v2+)] A kdebase/runtime/kwalletd/tests/kwalletautoclose.h [License: LGPL (v2+)] A kdebase/runtime/kwalletd/tests/kwalletnoautoclose.cpp [License: LGPL (v2+)] A kdebase/runtime/kwalletd/tests/kwalletpath.cpp [License: UNKNOWN] M +6 -22 kdelibs/kdeui/util/kwallet.cpp M +8 -0 kdelibs/kdeui/util/org.kde.KWallet.xml WebSVN link: http://websvn.kde.org/?view=rev&revision=882694 |