Bug 449684 - Disconnecting Bluetooth device via applet crashes Plasma in solid/upower code
Summary: Disconnecting Bluetooth device via applet crashes Plasma in solid/upower code
Status: RESOLVED WORKSFORME
Alias: None
Product: frameworks-solid
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Lukáš Tinkl
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-02-06 04:53 UTC by ratijas
Modified: 2022-03-09 04:35 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Bluetooth applet - glitched offset (38.87 KB, image/png)
2022-02-06 04:53 UTC, ratijas
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ratijas 2022-02-06 04:53:27 UTC
Created attachment 146333 [details]
Bluetooth applet - glitched offset

SUMMARY

For some reason, Apple Magic Keyboard sometimes shows up in my Bluetooth applet misaligned (shifted to the bottom, overlapping with whatever there is below it), and supposedly "connected" even though no connection attempts were made, and the device is not even paired anymore in the first place. In that glitched state, clicking on Disconnect button crashes Plasma shell as a whole, leading to automatic restart, after which the keyboard shows up normally as disconnected.

STEPS TO REPRODUCE
1. Get yourself a glitched device as described in SUMMARY section
2. Click Disconnect

OBSERVED RESULT
Plasmashell process crashes with this stacktrace:

❯ coredumpctl gdb /home/ratijas/kde/usr/bin/plasmashell
           PID: 4962 (plasmashell)
           UID: 1000 (ratijas)
           GID: 1000 (ratijas)
        Signal: 6 (ABRT)
     Timestamp: Sun 2022-02-06 07:30:05 MSK (28s ago)
  Command Line: /home/ratijas/kde/usr/bin/plasmashell
    Executable: /home/ratijas/kde/usr/bin/plasmashell
 Control Group: /user.slice/user-1000.slice/session-5.scope
          Unit: session-5.scope
         Slice: user-1000.slice
       Session: 5
     Owner UID: 1000 (ratijas)
       Boot ID: 4412c4e34d4c42a5b960732bf5533291
    Machine ID: 01cb509b8fa644f9983f3f3d34b184c7
      Hostname: orange
       Storage: /var/lib/systemd/coredump/core.plasmashell.1000.4412c4e34d4c42a5b960732bf5533291.4962.1644121805000000.zst (present)
     Disk Size: 40.9M
       Message: Process 4962 (plasmashell) of user 1000 dumped core.
[...]
(gdb) info threads 
  Id   Target Id                         Frame 
* 1    Thread 0x7f33a8ae6ac0 (LWP 4962)  0x00007f33acbe3d22 in raise () from /usr/lib/libc.so.6
  2    Thread 0x7f339f5ef640 (LWP 5054)  0x00007f33acc9ab2f in poll () from /usr/lib/libc.so.6
  3    Thread 0x7f338614d640 (LWP 5099)  0x00007f33acc9d323 in pselect () from /usr/lib/libc.so.6
  4    Thread 0x7f334a3ef640 (LWP 6089)  0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  5    Thread 0x7f33277fe640 (LWP 31911) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  6    Thread 0x7f33251fa640 (LWP 31908) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  7    Thread 0x7f3354930640 (LWP 7374)  0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  8    Thread 0x7f33267fc640 (LWP 7389)  0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  9    Thread 0x7f3326ffd640 (LWP 31912) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  10   Thread 0x7f3325ffb640 (LWP 7390)  0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  11   Thread 0x7f33249f9640 (LWP 31905) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  12   Thread 0x7f3327fff640 (LWP 31910) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  13   Thread 0x7f3357dc2640 (LWP 5627)  0x00007f33acc9ab2f in poll () from /usr/lib/libc.so.6
  14   Thread 0x7f33850e5640 (LWP 5241)  0x00007f33acc9ab2f in poll () from /usr/lib/libc.so.6
  15   Thread 0x7f33a7843640 (LWP 5000)  0x00007f33acc9ab2f in poll () from /usr/lib/libc.so.6
  16   Thread 0x7f337effe640 (LWP 31906) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  17   Thread 0x7f33497ed640 (LWP 6092)  0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  18   Thread 0x7f334bafd640 (LWP 31909) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  19   Thread 0x7f33a8627640 (LWP 4987)  0x00007f33acc9ab2f in poll () from /usr/lib/libc.so.6
  20   Thread 0x7f334abf0640 (LWP 31907) 0x00007f33aca7b8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0
  21   Thread 0x7f3363dff640 (LWP 5419)  0x00007f33acc9d201 in select () from /usr/lib/libc.so.6
  22   Thread 0x7f33612fd640 (LWP 5495)  0x00007f33acc9ab2f in poll () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007f33acbe3d22 in raise () at /usr/lib/libc.so.6
#1  0x00007f33af974987 in KCrash::defaultCrashHandler(int) (sig=6) at /home/ratijas/kde/src/frameworks/kcrash/src/kcrash.cpp:609
#2  0x00007f33acbe3da0 in <signal handler called> () at /usr/lib/libc.so.6
#3  0x00007f33acbe3d22 in raise () at /usr/lib/libc.so.6
#4  0x00007f33acbcd862 in abort () at /usr/lib/libc.so.6
#5  0x00007f33ad189ee4 in qt_assert(char const*, char const*, int) () at /usr/lib/libQt5Core.so.5
#6  0x00007f33ad189f44 in qt_assert_x(char const*, char const*, char const*, int) () at /usr/lib/libQt5Core.so.5
#7  0x00007f33afbf0862 in Solid::DeviceManagerPrivate::_k_deviceRemoved(QString const&) (this=0x5647a7172760, udi=...) at /home/ratijas/kde/src/frameworks/solid/src/solid/devices/frontend/devicemanager.cpp:229
#8  0x00007f33afbf0e1a in Solid::DeviceManagerPrivate::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5647a7172760, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffda5b37cc0)
    at /home/ratijas/kde/build/frameworks/solid/src/solid/KF5Solid_autogen/include/moc_devicemanager_p.cpp:83
#9  0x00007f33ad3a6ddf in  () at /usr/lib/libQt5Core.so.5
#10 0x00007f33afbe495c in Solid::Ifaces::DeviceManager::deviceRemoved(QString const&) (this=0x5647a6d190f0, _t1=...) at /home/ratijas/kde/build/frameworks/solid/src/solid/KF5Solid_autogen/3PYKXLVNWF/moc_devicemanager.cpp:151
#11 0x00007f33afc4a30a in Solid::Backends::UPower::UPowerManager::onDeviceRemoved(QDBusObjectPath const&) (this=0x5647a6d190f0, path=...) at /home/ratijas/kde/src/frameworks/solid/src/solid/devices/backends/upower/upowermanager.cpp:154
#12 0x00007f33afbe04a7 in Solid::Backends::UPower::UPowerManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5647a6d190f0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffda5b37fe0)
    at /home/ratijas/kde/build/frameworks/solid/src/solid/KF5Solid_autogen/ENRXH72VWR/moc_upowermanager.cpp:80
#13 0x00007f33ad3a6ddf in  () at /usr/lib/libQt5Core.so.5
#14 0x00007f33ade1e1d6 in QDBusInterface::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libQt5DBus.so.5
#15 0x00007f33ade4dfae in  () at /usr/lib/libQt5DBus.so.5
#16 0x00007f33ad399e76 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#17 0x00007f33ae20a1a6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f33ad37616a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#19 0x00007f33ad376c69 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#20 0x00007f33ad3bd548 in  () at /usr/lib/libQt5Core.so.5
#21 0x00007f33ab619f13 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#22 0x00007f33ab6700d9 in  () at /usr/lib/libglib-2.0.so.0
#23 0x00007f33ab617485 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#24 0x00007f33ad3c144a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#25 0x00007f33ad36e44b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007f33ad379b97 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#27 0x00005647a5b397cc in main(int, char**) (argc=1, argv=0x7ffda5b38748) at /home/ratijas/kde/src/kde/workspace/plasma-workspace/shell/main.cpp:238


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.24.80
KDE Frameworks Version: 5.91.0
Qt Version: 5.15.2
Kernel Version: 5.16.5-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-6700HQ CPU @ 2.60GHz
Memory: 15.6 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 970M/PCIe/SSE2

plasma-desktop: 963b4ee7a1c56ee68a2d5bf0557862d497fea974
plasma-workspace: daed0461ebafe1c70821f6852394b058078d3315
plasma-framework: 850051e0a0b577e6c22b67e2ba04a7c8c8ed25cb
bluedevil: a6f704acf7e2b57d6ab89cde664d6a20290e7c36
bluez: 5.63-1
upower: 0.99.13-1
Comment 1 Méven Car 2022-02-07 16:11:13 UTC
Could share the result of `solid-hardware5 list` ?

If you can spot the line corresponding to your gliching keyboard, could you run `solid-hardware5 details <udi>` where udi is extracted from the previous commend result.

That would be very helpful to help solve this.
Comment 2 Bug Janitor Service 2022-02-22 04:36:43 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2022-03-09 04:35:47 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!