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

            Bug ID: 517116
           Summary: Unlocking LUKS-encrypted disk second time after
                    getting the password wrong the first time crashes
                    Plasma in KServiceAction::exec()
    Classification: Plasma
           Product: plasmashell
      Version First 6.6.80
       Reported In:
          Platform: KDE Linux
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: Disks & Devices widget
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: 1.0

STEPS TO REPRODUCE
1. Have a LUKS-encrypted disk
2. Plug it in
3. In the Disks & Devices popup, click "Mount and open"
4. When prompted for the password, intentionally enter the wrong thing
5. In the Disks & Devices popup, click "Mount and open" again
6. This time, get the password right


OBSERVED RESULT
The disk is unlocked and mounted. And then plasmashell crashes with the
following backtrace:

Thread 1 (Thread 0x7f6e8291cc00 (LWP 2168)):
[KCrash Handler]
#4  0x00007f6e8be0e544 in KServiceAction::exec() const () from
/usr/lib/libKF6Service.so.6
#5  0x00007f6e3da5ab21 in ActionInterface::delayedExecute
(this=this@entry=0x55570edc1df0) at
/home/nate/kde/src/plasma-workspace/applets/devicenotifier/actioninterface.cpp:149
#6  0x00007f6e3da5bc99 in ActionInterface::storageSetupDone
(this=0x55570edc1df0, udi=...) at
/home/nate/kde/src/plasma-workspace/applets/devicenotifier/actioninterface.cpp:141
#7  0x00007f6e89192f0f in ?? () from /usr/lib/libQt6Core.so.6
#8  0x00007f6e3da42705 in QMetaObject::activate<void, QString>
(sender=0x55570c3bb1a0, mo=0x7f6e3da926e0 <StateInfo::staticMetaObject>,
local_signal_index=0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#9  StateInfo::stateChanged (this=0x55570c3bb1a0, _t1=...) at
/home/nate/kde/build/plasma-workspace/applets/devicenotifier/org.kde.plasma.devicenotifier_autogen/include/moc_stateinfo.cpp:214
#10 StateInfo::setIdleState (this=this@entry=0x55570c3bb1a0,
operationResult=<optimized out>, operationInfo=..., udi=...) at
/home/nate/kde/src/plasma-workspace/applets/devicenotifier/stateinfo.cpp:243
#11 0x00007f6e3da44d7a in QtPrivate::FunctorCall<std::integer_sequence<unsigned
long, 0ul, 1ul, 2ul>, QtPrivate::List<Solid::ErrorType, QVariant, QString
const&>, void, void (StateInfo::*)(Solid::ErrorType, QVariant, QString
const&)>::call(void (StateInfo::*)(Solid::ErrorType, QVariant, QString const&),
StateInfo*, void**)::{lambda()#1}::operator()() const (__closure=<optimized
out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:126
#12 QtPrivate::FunctorCallBase::call_internal<void,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>,
QtPrivate::List<Solid::ErrorType, QVariant, QString const&>, void, void
(StateInfo::*)(Solid::ErrorType, QVariant, QString const&)>::call(void
(StateInfo::*)(Solid::ErrorType, QVariant, QString const&), StateInfo*,
void**)::{lambda()#1}>(void**,
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>,
QtPrivate::List<Solid::ErrorType, QVariant, QString const&>, void, void
(StateInfo::*)(Solid::ErrorType, QVariant, QString const&)>::call(void
(StateInfo::*)(Solid::ErrorType, QVariant, QString const&), StateInfo*,
void**)::{lambda()#1}&&) (args=<optimized out>, fn=...) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#13 QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>,
QtPrivate::List<Solid::ErrorType, QVariant, QString const&>, void, void
(StateInfo::*)(Solid::ErrorType, QVariant, QString const&)>::call (f=<optimized
out>, o=<optimized out>, arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:126
#14 QtPrivate::FunctionPointer<void (StateInfo::*)(Solid::ErrorType, QVariant,
QString const&)>::call<QtPrivate::List<Solid::ErrorType, QVariant, QString
const&>, void> (f=<optimized out>, o=<optimized out>, arg=0x7ffd2c9a6da0) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:174
#15 QtPrivate::QCallableObject<void (StateInfo::*)(Solid::ErrorType, QVariant,
QString const&), QtPrivate::List<Solid::ErrorType, QVariant, QString const&>,
void>::impl (which=<optimized out>, this_=<optimized out>, r=<optimized out>,
a=0x7ffd2c9a6da0, ret=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:545
#16 0x00007f6e89192f0f in ?? () from /usr/lib/libQt6Core.so.6
#17 0x00007f6e8c1001ac in Solid::StorageAccess::setupDone(Solid::ErrorType,
QVariant, QString const&) () from /usr/lib/libKF6Solid.so.6
#18 0x00007f6e8c106b55 in ?? () from /usr/lib/libKF6Solid.so.6
#19 0x00007f6e891932da in ?? () from /usr/lib/libQt6Core.so.6
#20 0x00007f6e8c168282 in ?? () from /usr/lib/libKF6Solid.so.6
#21 0x00007f6e8c168cca in ?? () from /usr/lib/libKF6Solid.so.6
#22 0x00007f6e89635bb1 in ?? () from /usr/lib/libQt6DBus.so.6
#23 0x00007f6e89180474 in QObject::event(QEvent*) () from
/usr/lib/libQt6Core.so.6
#24 0x00007f6e8b6e0380 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/libQt6Widgets.so.6
#25 0x00007f6e89125f48 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/libQt6Core.so.6
#26 0x00007f6e89126320 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/libQt6Core.so.6
#27 0x00007f6e8940be78 in ?? () from /usr/lib/libQt6Core.so.6
#28 0x00007f6e87a63f4d in ?? () from /usr/lib/libglib-2.0.so.0
#29 0x00007f6e87a65617 in ?? () from /usr/lib/libglib-2.0.so.0
#30 0x00007f6e87a65825 in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#31 0x00007f6e89409cb2 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt6Core.so.6
#32 0x00007f6e89130cf6 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt6Core.so.6
#33 0x00007f6e8912a9f1 in QCoreApplication::exec() () from
/usr/lib/libQt6Core.so.6
#34 0x00005556f69f6365 in main (argc=<optimized out>, argv=<optimized out>) at
/home/nate/kde/src/plasma-workspace/shell/main.cpp:204


EXPECTED RESULT
No crash!


SOFTWARE/OS VERSIONS
Operating System: KDE Linux 2026-03-04
KDE Plasma Version: 6.6.80
KDE Frameworks Version: 6.24.0
Qt Version: 6.10.2
Kernel Version: 6.18.13-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 7840U w/ Radeon™ 780M Graphics
Memory: 17 GB of RAM (16.0 GB usable)
Graphics Processor: AMD Radeon 780M Graphics


ADDITIONAL INFORMATION
This only happens if you get the password wrong first and then try again. For
me this reproduces the crash 100% of the time.

On the other hand, if you enter the password correctly the first time, it
unlocks and mounts with no crash.

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

Reply via email to