https://bugs.kde.org/show_bug.cgi?id=524522

--- Comment #21 from Gregor Geßner <[email protected]> ---
(In reply to michaelk83 from comment #19)
> What I'm less clear about is why these reports started only recently, with
> 6.29. It might just be a coincidental external change, but this part of
> comment 4 suggests it may be something that was recently changed in the PAM
> instance initialization:
> 
> > The crash is deterministic and reproducible, but only in the first
> > instance of ksecretd started by SDDM with --pam-login. After the
> > crash, when ksecretd is automatically restarted (without --pam-login),
> > the crash never reproduces again for the rest of the session,
> > regardless of how many times the same secret is requested.

Yes, I also found it unsatisfying not to be able to figure out what exactly
causes the issue to occur after the recent KDE release.
I have fairly limited experience developing/debugging kde. I wasn't able to
debug the autostarted daemon early enough to get a clear insight into the
initialization process (there are definitely ways to do this, I just didn't
figure out how) 

If somebody wants to investigate further: the cleanest repro steps I have on a
clean os install:
 * Install latest cachyos/arch in a VM (I used cachyos because I had that image
available, but from the reports arch should work just as well). Of course use
KDE/Wayland and not some other DM.
 * setup user using password login and disable autologin making sure
kwallet-pam is active
 * install all updates and setup debug environment (sources, gdb config etc.)
 * reboot
 * after login open kdewalletmanager (wallet should be completely empty)
 * create new folder, create new password in the folder -> crash with trace:
    #0  EVP_CIPHER_CTX_set_key_length () at crypto/evp/evp_enc.c:1370
    #1  0x00007fb656edecfb in opensslQCAPlugin::opensslCipherContext::setup
(this=0x55b23339b050, dir=<optimized out>, key=..., iv=..., tag=...) at
/usr/src/debug/qca/qca-2.3.10/plugins/qca-ossl/qca-ossl.cpp:6321
    #2  0x00007fb667524fca in QCA::Cipher::setup
(this=this@entry=0x7ffc68921110, dir=dir@entry=QCA::Decode, key=..., iv=...) at
/usr/src/debug/qca/qca-2.3.10/src/qca_basic.cpp:400
    #3  0x00007fb667525314 in QCA::Cipher::Cipher (this=<optimized out>,
type=..., mode=<optimized out>, pad=<optimized out>, dir=<optimized out>,
key=..., iv=..., provider=..., this=<optimized out>, type=..., mode=<optimized
out>, pad=<optimized out>, dir=<optimized out>, key=..., iv=..., provider=...)
at /usr/src/debug/qca/qca-2.3.10/src/qca_basic.cpp:281
    #4  0x000055b223097d25 in KWalletFreedesktopSessionAlgorithmDhAes::decrypt
() at
/usr/src/debug/kwallet/kwallet-6.29.0/src/runtime/ksecretd/kwalletfreedesktopsession.cpp:152
    #5  0x000055b22309d244 in KWalletFreedesktopCollection::CreateItem () at
/usr/src/debug/kwallet/kwallet-6.29.0/src/runtime/ksecretd/kwalletfreedesktopcollection.cpp:173
    #6  0x000055b2230b24bf in KWalletFreedesktopCollectionAdaptor::CreateItem
() at
/usr/src/debug/kwallet/build/src/runtime/ksecretd/kwalletfreedesktopcollectionadaptor.cpp:75
    #7  KWalletFreedesktopCollectionAdaptor::qt_static_metacall () at
/usr/src/debug/kwallet/build/src/runtime/ksecretd/moc_kwalletfreedesktopcollectionadaptor.cpp:160
    #8  0x000055b2230b2b8f in KWalletFreedesktopCollectionAdaptor::qt_metacall
() at
/usr/src/debug/kwallet/build/src/runtime/ksecretd/moc_kwalletfreedesktopcollectionadaptor.cpp:238
    #9  0x00007fb6669ddae9 in QDBusConnectionPrivate::deliverCall
(this=this@entry=0x7fb65c001680, object=object@entry=0x55b2332f1c70, msg=...,
metaTypes=..., slotIdx=7) at
/usr/src/debug/qt6-base/qtbase/src/dbus/qdbusintegrator.cpp:1009
    #10 0x00007fb6669dea4a in QDBusConnectionPrivate::activateCall
(this=this@entry=0x7fb65c001680, object=<optimized out>, flags=flags@entry=...,
msg=...) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusintegrator.cpp:911
    #11 0x00007fb6669e482d in QDBusConnectionPrivate::activateObject
(this=0x7fb65c001680, node=..., msg=..., pathStartPos=<optimized out>) at
/usr/src/debug/qt6-base/qtbase/src/dbus/qdbusintegrator.cpp:1499
    #12 0x00007fb6669e535a in QDBusActivateObjectEvent::placeMetaCall
(this=0x7fb65c00c670) at
/usr/src/debug/qt6-base/qtbase/src/dbus/qdbusintegrator.cpp:1619
    #13 0x00007fb6659e6b96 in QObject::event(QEvent*) () from
/usr/lib/libQt6Core.so.6
    #14 0x00007fb666d0325f in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () from /usr/lib/libQt6Widgets.so.6
    #15 0x00007fb6659822b8 in QCoreApplication::notifyInternal2(QObject*,
QEvent*) () from /usr/lib/libQt6Core.so.6
    #16 0x00007fb6659826c1 in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from
/usr/lib/libQt6Core.so.6
    #17 0x00007fb665c9a4b8 in ?? () from /usr/lib/libQt6Core.so.6
    #18 0x00007fb664a5caf5 in g_main_dispatch (context=0x7fb65c000f00) at
../glib/glib/gmain.c:3591
    #19 0x00007fb664a5e008 in g_main_context_dispatch_unlocked
(context=0x7fb65c000f00) at ../glib/glib/gmain.c:4451
    #20 g_main_context_iterate_unlocked (context=context@entry=0x7fb65c000f00,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
../glib/glib/gmain.c:4516
    #21 0x00007fb664a5e152 in g_main_context_iteration (context=0x7fb65c000f00,
may_block=1) at ../glib/glib/gmain.c:4582
    #22 0x00007fb665c96f32 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt6Core.so.6
    #23 0x00007fb66598f664 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt6Core.so.6
    #24 0x00007fb66598685a in QCoreApplication::exec() () from
/usr/lib/libQt6Core.so.6
    #25 0x000055b22305d874 in main () at
/usr/src/debug/kwallet/kwallet-6.29.0/src/runtime/ksecretd/main.cpp:211

 (it is a slightly different path, than the other reports but the end result
from an incorrect initialization of the context seems to be the same.)
 * to reset the test: restore snapshot or remove the wallet and reboot. After
removing the wallet and rebooting the issue can be reproduced.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to