SUMMARY After upgrade and reboot to 5.15.0, kwallet refuse to open and reports a crash on every attempt. STEPS TO REPRODUCE 1. Upgrade to the newest version of Neon User Edition 2. Install libpam-kwallet5 3. Reboot + Login and found the previously working KWallet crash on open requests. OBSERVED RESULT here's the terminal output of kwalletd5: ``` kwalletd5: Checking for pam module kwalletd5: Got pam-login param kwalletd5: Waiting for hash on 6- kwalletd5: Hash or environment not received kwalletd5: /workspace/build/src/runtime/kwalletd/kwalletd.cpp:595:int KWalletD::internalOpen(const QString&, const QString&, bool, WId, bool, const QString&): assert ‘b->cipherType() != KWallet::BACKEND_CIPHER_UNKNOWN’ failed. KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = kwalletd5 path = /usr/bin pid = 25574 KCrash: Arguments: /usr/bin/kwalletd5 KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi from kdeinit sock_file=/run/user/1000/kdeinit5__0 [1] + 25574 suspended (signal) kwalletd5 --pam-login 6 3 ``` The stacktrace: ``` Application: kwalletd5 (kwalletd5), signal: Aborted Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7f096393a6c0 (LWP 11951))] Thread 3 (Thread 0x7f0948da2700 (LWP 11953)): #0 0x00007f095f3b6bf9 in __GI___poll (fds=0x7f094401ad60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f095a8d6539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f095a8d664c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f095ff1115b in QEventDispatcherGlib::processEvents (this=0x7f0944000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #4 0x00007f095feb264a in QEventLoop::exec (this=this@entry=0x7f0948da1d70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 #5 0x00007f095fcda41a in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531 #6 0x00007f096037f015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #7 0x00007f095fcdbbc2 in QThreadPrivate::start (arg=0x7f09605f6d80) at thread/qthread_unix.cpp:361 #8 0x00007f09625786db in start_thread (arg=0x7f0948da2700) at pthread_create.c:463 #9 0x00007f095f3c388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 0x7f0952852700 (LWP 11952)): #0 0x00007f095f3b6bf9 in __GI___poll (fds=0x7f0952851cb8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f095d0b3747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #2 0x00007f095d0b536a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #3 0x00007f0955414d4a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #4 0x00007f095fcdbbc2 in QThreadPrivate::start (arg=0x560dc781baa0) at thread/qthread_unix.cpp:361 #5 0x00007f09625786db in start_thread (arg=0x7f0952852700) at pthread_create.c:463 #6 0x00007f095f3c388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 0x7f096393a6c0 (LWP 11951)): [KCrash Handler] #6 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #7 0x00007f095f2e2801 in __GI_abort () at abort.c:79 #8 0x00007f095f2d239a in __assert_fail_base (fmt=0x7f096392876b "%s%s%s:%u\357\274\232%s%s\345\201\207\350\256\276 \342\200\230%s\342\200\231 \345\244\261\350\264\245\343\200\202\n%n", assertion=assertion@entry=0x560dc5feef78 "b->cipherType() != KWallet::BACKEND_CIPHER_UNKNOWN", file=file@entry=0x560dc5feef40 "/workspace/build/src/runtime/kwalletd/kwalletd.cpp", line=line@entry=595, function=function@entry=0x560dc5fef780 <KWalletD::internalOpen(QString const&, QString const&, bool, unsigned long long, bool, QString const&)::__PRETTY_FUNCTION__> "int KWalletD::internalOpen(const QString&, const QString&, bool, WId, bool, const QString&)") at assert.c:92 #9 0x00007f095f2d2412 in __GI___assert_fail (assertion=assertion@entry=0x560dc5feef78 "b->cipherType() != KWallet::BACKEND_CIPHER_UNKNOWN", file=file@entry=0x560dc5feef40 "/workspace/build/src/runtime/kwalletd/kwalletd.cpp", line=line@entry=595, function=function@entry=0x560dc5fef780 <KWalletD::internalOpen(QString const&, QString const&, bool, unsigned long long, bool, QString const&)::__PRETTY_FUNCTION__> "int KWalletD::internalOpen(const QString&, const QString&, bool, WId, bool, const QString&)") at assert.c:101 #10 0x0000560dc5fcd2bb in KWalletD::internalOpen (this=this@entry=0x7ffd8ae5b130, appid=..., wallet=..., isPath=isPath@entry=false, w=w@entry=117440518, modal=modal@entry=true, service=...) at ./src/runtime/kwalletd/kwalletd.cpp:595 #11 0x0000560dc5fcd5f6 in KWalletD::doTransactionOpen (this=this@entry=0x7ffd8ae5b130, appid=..., wallet=..., isPath=<optimized out>, wId=117440518, modal=<optimized out>, service=...) at ./src/runtime/kwalletd/kwalletd.cpp:557 #12 0x0000560dc5fce2ef in KWalletD::processTransactions (this=0x7ffd8ae5b130) at ./src/runtime/kwalletd/kwalletd.cpp:239 #13 0x0000560dc5fed16c in KWalletD::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x560dc786d0b0) at ./obj-x86_64-linux-gnu/src/runtime/kwalletd/kwalletd5_autogen/EWIEGA46WW/moc_kwalletd.cpp:390 #14 0x00007f095fee4992 in QObject::event (this=0x7ffd8ae5b130, e=<optimized out>) at kernel/qobject.cpp:1249 #15 0x00007f096167d83c in QApplicationPrivate::notify_helper (this=this@entry=0x560dc7815c30, receiver=receiver@entry=0x7ffd8ae5b130, e=e@entry=0x560dc78da5c0) at kernel/qapplication.cpp:3752 #16 0x00007f0961684dd0 in QApplication::notify (this=0x7ffd8ae5b060, receiver=0x7ffd8ae5b130, e=0x560dc78da5c0) at kernel/qapplication.cpp:3499 #17 0x00007f095feb4328 in QCoreApplication::notifyInternal2 (receiver=0x7ffd8ae5b130, event=0x560dc78da5c0) at kernel/qcoreapplication.cpp:1061 #18 0x00007f095feb44fe in QCoreApplication::sendEvent (receiver=<optimized out>, event=event@entry=0x560dc78da5c0) at kernel/qcoreapplication.cpp:1451 #19 0x00007f095feb6e87 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x560dc7815db0) at kernel/qcoreapplication.cpp:1800 #20 0x00007f095feb7428 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1654 #21 0x00007f095ff11b23 in postEventSourceDispatch (s=0x560dc78862d0) at kernel/qeventdispatcher_glib.cpp:276 #22 0x00007f095a8d6387 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #23 0x00007f095a8d65c0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #24 0x00007f095a8d664c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #25 0x00007f095ff1113f in QEventDispatcherGlib::processEvents (this=0x560dc788edf0, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #26 0x00007f095feb264a in QEventLoop::exec (this=this@entry=0x7ffd8ae5af80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225 #27 0x00007f095febb800 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1364 #28 0x0000560dc5fc2d8f in main (argc=<optimized out>, argv=<optimized out>) at ./src/runtime/kwalletd/main.cpp:232 ``` EXPECTED RESULT Let KWallet subsystem work as before. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Neon User Edition KDE Plasma Version: 5.15.0 KDE Frameworks Version: 5.15.0 Qt Version: 5
The only similar issue I found online is this one: https://bugs.launchpad.net/ubuntu/+source/kwallet/+bug/1574099 But I am not sure how related they are.
My solution to work around this issue: 1. Brab a liveCD of a distribution with an older plasma version installed (I used a manjaro KDE installation drive), and boot into it. 2. Copy your original user's `~/.local/share/kwallet/*` to the equal location of the current user, change its ownership, etc. 3. Open the wallet, export as xml, and save it somewhere safe (like an encrypted drive). 4. Delete the touble-causing wallet in the original system, create a new one and import that xml into the new wallet. 5. Shred the xml file.
I'm sorry we hadn't addressed this crash report earlier. This version of KWallet is no longer supported. If you're still experiencing crashes with it on an up to date system, please create a new bug report. Thanks for your understanding.