Summary: | plasmashell crashes in StatusNotifierItemSource::id() on launch | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Airton <airton.rampim> |
Component: | System Tray | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andreas.grupp, andrei.raziel, bharadwaj.raju777, hirokws, jason.kurzik, juliano.raimundu, k21gcy20j, kde.org, kdebugs, leviatan1, materka, nate, plasma-bugs, qydwhotmail, regiem5 |
Priority: | HI | Keywords: | drkonqi, regression |
Version: | 5.23.0 | ||
Target Milestone: | 1.0 | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/commit/931a5441746daf10d9476409f347263719ef6c63 | Version Fixed In: | 5.23.4 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi Script to list SNI services journalctl output from a crash when closing two icons New crash information added by DrKonqi |
Description
Airton
2021-10-18 10:49:56 UTC
#5 StatusNotifierItemSource::id() const (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140 #6 0x00007f5d787420a4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302 *** Bug 444171 has been marked as a duplicate of this bug. *** What apps do you have in the system tray? (In reply to Bharadwaj Raju from comment #3) > What apps do you have in the system tray? Besides the standard apps, I have Insync 3.2.4.40856 and Telegram 3.1.8 in the system tray. Update: Now the problem can't be reproduced every time. It only occurs occasionally. *** Bug 444413 has been marked as a duplicate of this bug. *** I commented before that the problem occurs sometimes, but I couldn't find out what should be causing it. Now, I think it's related with the layout configuration of the desktop. So, in case you can't replicate the crash, try setting the "Layout" field to "Folder View" in "Desktop Context Menu > Configure Desktop and Wallpaper... > Wallpaper" Created attachment 143098 [details]
New crash information added by DrKonqi
plasmashell (5.23.2) using Qt 5.15.2
- What I was doing when the application crashed:
Exiting the double-shown Slack App in the tray bar.
-- Backtrace (Reduced):
#6 QString::QString (other=..., this=0x7ffd1dd75940) at /usr/include/qt5/QtCore/qstring.h:1093
#7 StatusNotifierItemSource::id (this=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/statusnotifieritemsource.cpp:140
#8 extractItemId (sniData=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:284
#9 StatusNotifierModel::data (this=0x55a12ecfac50, index=..., role=364) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:302
#10 0x00007f0490edea43 in QModelIndex::data (arole=364, this=0x7ffd1dd759a0) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
It's likely to be caused by two services with the same service name, so the hash table cannot handle them. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1166 Created attachment 143117 [details] New crash information added by DrKonqi plasmashell (5.23.80) using Qt 5.15.2 - What I was doing when the application crashed: The crash was deliberately produced. Please ignore it and see https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1166 -- Backtrace (Reduced): #6 0x00007f7108097a44 in QString::QString(QString const&) (this=0x7ffd4428c068, other=...) at /usr/include/qt5/QtCore/qstring.h:1093 #10 0x00007f71162d8a73 in QModelIndex::data(int) const (arole=364, this=0x7ffd4428c210) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460 #11 QConcatenateTablesProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=<optimized out>, role=364) at itemmodels/qconcatenatetablesproxymodel.cpp:195 #12 0x00007f71162e54c1 in QSortFilterProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=364) at itemmodels/qsortfilterproxymodel.cpp:2294 #13 0x00007f71162e54c1 in QSortFilterProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=364) at itemmodels/qsortfilterproxymodel.cpp:2294 Created attachment 143173 [details]
New crash information added by DrKonqi
plasmashell (5.23.2) using Qt 5.15.2
- What I was doing when the application crashed:
Immediately loading into KDE
First occured after installing a second keyboard theme. It also appears the keyboard plasmoid might be loaded twice, not sure.
-- Backtrace (Reduced):
#6 QString::QString (other=..., this=0x7ffc5d0aefe0) at /usr/include/qt5/QtCore/qstring.h:1093
#7 StatusNotifierItemSource::id (this=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/statusnotifieritemsource.cpp:140
#8 extractItemId (sniData=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:284
#9 StatusNotifierModel::data (this=0x55df60782ee0, index=..., role=364) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:302
#10 0x00007f9f5671ba73 in QModelIndex::data (arole=364, this=0x7ffc5d0af040) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
*** Bug 445057 has been marked as a duplicate of this bug. *** *** Bug 445326 has been marked as a duplicate of this bug. *** Created attachment 143586 [details]
New crash information added by DrKonqi
plasmashell (5.23.3) using Qt 5.15.3
- What I was doing when the application crashed:
I had just updated Telegram, and it restarted.
- Unusual behavior I noticed:
Before the update, I had several duplicate icons in the system tray, which I thought as strange. This duplicate system-tray icon behaviour has only happend once, this time, so far. I think this could have been related to my using a sysctl command to disable ipv6 after connecting to an ipv4-only vpn, which may have been unexpected for several other programs utilizing the network having system-tray icons displayed... only a hunch though.
Thanks to you all!
-- Backtrace (Reduced):
#4 QString::QString (other=..., this=0x7ffc43fea150) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1093
#5 StatusNotifierItemSource::id (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140
#6 0x00007f03601bd1e4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302
#7 StatusNotifierModel::data (this=0x557ea69be1b0, index=..., role=258) at ./applets/systemtray/systemtraymodel.cpp:302
#8 0x00007f0379a466ea in QModelIndex::data (arole=258, this=0x7ffc43fea1a0) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Created attachment 143591 [details]
New crash information added by DrKonqi
plasmashell (5.23.2) using Qt 5.15.2
The problem had went away after I turned off a second keyboard layout and updated to 5.23.2. I decided to attempt a reproduction, which worked.
- What I was doing when the application crashed:
Added a second US English keyboard layout
Rebooted computer
Switched activity
Closed the IBus applet
Closed second IBus applet
Crashed (not sure which closing caused the crash)
- Unusual behavior I noticed:
The problem was not occuring (only one IBus loaded and did not crash when closed) when only one keyboard layout was present
I'm going to remove second keyboard layout and repeat steps to see if this resolves the issue, I'll add a comment to the bug if it resolves.
-- Backtrace (Reduced):
#6 QString::QString (other=..., this=0x7fff5e69a2c0) at /usr/include/qt5/QtCore/qstring.h:1093
#7 StatusNotifierItemSource::id (this=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/statusnotifieritemsource.cpp:140
#8 extractItemId (sniData=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:284
#9 StatusNotifierModel::data (this=0x55f98f992180, index=..., role=364) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:302
#10 0x00007f4be49bea73 in QModelIndex::data (arole=364, this=0x7fff5e69a320) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Removing the second keyboard layout did not remove the duplicate icon from spawning, and crash does still occur when trying to close them. Created attachment 143603 [details]
Script to list SNI services
Hi Jason, could you run attached script? It lists registered SNI services, I want to confirm if there are duplicates in DBUS services.
Some logs would be useful too, could you run this please?
journalctl -b 0 | grep "system tray"
So far I was not able too reproduce this issue, but I didn't try to configure with multiple keyboard layouts - I will try that later.
I think I was able to reproduce. I restarted kded5 few times using: kquitapp5 kded5; kstart5 kded5 Usually it worked fine, but randomly it caused plasma to crash or all SNI icons where duplicated (Skype, Dropbox etc). Keyboard layout is a plasmoid on my system so it was not affected - I don't have IBus icon). (In reply to Konrad Materka from comment #17) > Created attachment 143603 [details] > Script to list SNI services > > Hi Jason, could you run attached script? It lists registered SNI services, I > want to confirm if there are duplicates in DBUS services. > Some logs would be useful too, could you run this please? > > journalctl -b 0 | grep "system tray" > > So far I was not able too reproduce this issue, but I didn't try to > configure with multiple keyboard layouts - I will try that later. I had to replace the ps command because the -ph wasn't working ----------------------------------- org.kde.StatusNotifierWatcher pid,start,command: 2287 12:26:26 /usr/bin/kded5 ITEMS: ITEM: :1.31/org/ayatana/NotificationItem/ibus_ui_gtk3 PID STAT: 2492 ? Sl 0:03 /usr/lib64/ibus/ibus-ui-gtk3 ID: ibus-ui-gtk3 TITLE: IBus Panel ITEM: :1.50/org/ayatana/NotificationItem/pcloud1 PID STAT: 2464 ? Sl 2:29 /tmp/.mount_pcloudfDrDBU/pcloud ID: pcloud1 TITLE: pcloud ITEM: :1.70/org/ayatana/NotificationItem/discord1 PID STAT: 8530 ? Sl 6:30 /usr/lib64/discord/Discord ID: discord1 TITLE: discord ----------------- However, two of those ibus panel icons are clearly visible on my screen. Closing one of them didn't result in a crash. However right clicking the second one to attempt to close it resulted in a crash. Attaching journalctl output surrounding a crash (filtering out kernel USB messages). Created attachment 143626 [details]
journalctl output from a crash when closing two icons
Created attachment 143726 [details]
New crash information added by DrKonqi
plasmashell (5.23.3) using Qt 5.15.3
- What I was doing when the application crashed:
First I was connecting to VPN and then I close element app with system tray icon.
-- Backtrace (Reduced):
#4 QString::QString (other=..., this=0x7ffc8ba59eb0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1093
#5 StatusNotifierItemSource::id (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140
#6 0x00007f2836e1a1e4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302
#7 StatusNotifierModel::data (this=0x55d1a6cfcbe0, index=..., role=364) at ./applets/systemtray/systemtraymodel.cpp:302
#8 0x00007f2849d686ea in QModelIndex::data (arole=364, this=0x7ffc8ba59f00) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Git commit c0b8f6871e75bbc268165844ad5780f13a5f88ac by Fushan Wen. Committed on 20/11/2021 at 10:46. Pushed by fusionfuture into branch 'master'. systemtray: Check if a service is already added before processing QDBusReply Due to async nature of QDBusPendingReply, services could be already registered by QDBusServiceWatcher when the pending reply takes a long time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished, which will make the same service added twice and crash plasmashell. We need to check if a service is already added in m_sniServices before processing registered items in QDBusReply. M +3 -1 applets/systemtray/statusnotifieritemhost.cpp https://invent.kde.org/plasma/plasma-workspace/commit/c0b8f6871e75bbc268165844ad5780f13a5f88ac Git commit 931a5441746daf10d9476409f347263719ef6c63 by Fushan Wen. Committed on 20/11/2021 at 13:17. Pushed by fusionfuture into branch 'Plasma/5.23'. systemtray: Check if a service is already added before processing QDBusReply Due to async nature of QDBusPendingReply, services could be already registered by QDBusServiceWatcher when the pending reply takes a long time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished, which will make the same service added twice and crash plasmashell. We need to check if a service is already added in m_sniServices before processing registered items in QDBusReply. (cherry picked from commit c0b8f6871e75bbc268165844ad5780f13a5f88ac) M +3 -1 applets/systemtray/statusnotifieritemhost.cpp https://invent.kde.org/plasma/plasma-workspace/commit/931a5441746daf10d9476409f347263719ef6c63 *** Bug 446619 has been marked as a duplicate of this bug. *** *** Bug 455505 has been marked as a duplicate of this bug. *** |