Bug 482889 - plasmashell hits ASSERT on startup after upgrade to 6.0.0
Summary: plasmashell hits ASSERT on startup after upgrade to 6.0.0
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Startup process (other bugs)
Version First Reported In: 6.0.0
Platform: Neon Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-03-08 16:05 UTC by Kevin Krammer
Modified: 2024-07-17 21:39 UTC (History)
4 users (show)

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


Attachments
Backtrace with debug symbol packages installed (24.31 KB, text/plain)
2024-03-08 16:07 UTC, Kevin Krammer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Krammer 2024-03-08 16:05:46 UTC
SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1.  Updated KDE Neon last weekend and reproduced today with another almost identical system
2. Restart and login (X11 session)
3. Run plasmashell from a Konsole window (in my case Yakuake)

OBSERVED RESULT

plasmashell hits and assert

ASSERT: "!protocol.isEmpty()" in file ./src/core/kprotocolinfofactory.cpp, line 60

EXPECTED RESULT

plasmashell starts

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: KDE Neon 6.0.0
(available in About System)
KDE Plasma Version: 6.0.0 (plasma-workspace package  4:6.0.0-1xneon+22.04+jammy+release+build70)
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION

Problem seems to be my plasma-org.kde.plasma.desktop-appletsrc config, in particular lines with

plugin=org.kde.plasma.folder

If I remove those the assert is gone and most containements are properly restored:
* all panels
* two of three desktops with their respective wallpapers (on all activities)

The screen that held the "folder view" is just black, does not react to mouse clicks (but shows the panels for that screen).

Since the config file in question contains local file names I am not attaching it here, but can send it to a developer on request
Comment 1 Kevin Krammer 2024-03-08 16:07:02 UTC
Created attachment 166723 [details]
Backtrace with debug symbol packages installed
Comment 2 Kai Uwe Broulik 2024-03-08 16:34:18 UTC
Sounds like a trivial fix but I’d like to understand how the scheme can be empty in the first place. Any chance you could look at what the url is it tries to check? Looks like a broken desktop file you have there?
Comment 3 Bug Janitor Service 2024-03-08 16:37:36 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/2100
Comment 4 Kevin Krammer 2024-03-08 17:38:35 UTC
(In reply to Kai Uwe Broulik from comment #2)
> Sounds like a trivial fix but I’d like to understand how the scheme can be
> empty in the first place. Any chance you could look at what the url is it
> tries to check? Looks like a broken desktop file you have there?

Apparent the URL is "://$HOME"

Couldn't quite find the .desktop file this would come from.

I grepped through my whole system (as root to be sure) and only found

/home/kevin/.kde/share/apps/RecentDocuments/WeeklyTimeSheet-2018-06.charmreport.desktop:URL[$e]=file://$HOME/data/Charm/WeeklyTimeSheet-2018-06.charmreport
/home/kevin/.kde/share/apps/RecentDocuments/IMG_20160410_155042.jpg.desktop:URL[$e]=file://$HOME/data/downloads/bluetooth/IMG_20160410_155042.jpg

but those are file://$HOME
Comment 5 Kai Uwe Broulik 2024-03-08 18:23:13 UTC
Hmm, [$e] should expand environment variables. I know we dumbed down the evironment expansion for security reasons when used in desktop files which could have broken this here? @dfaure you have any idea?

Either way, let's not assert in Folder Model about broken URLs.
Comment 6 David Faure 2024-03-08 21:14:44 UTC
No idea, given that a KDesktopFile unittest passes. https://invent.kde.org/frameworks/kconfig/-/merge_requests/282

But the question is what foldermodel does.
Comment 7 Kai Uwe Broulik 2024-03-09 12:31:43 UTC
Git commit 0504f0e0ef2b0ebc4f1b1faa9ee8c74d2191931b by Kai Uwe Broulik.
Committed on 09/03/2024 at 12:23.
Pushed by broulik into branch 'master'.

Folder Model: Handle invalid URL in desktop file

There's no point in handling an invalid URL, and
KProtocolInfo asserts that the scheme is not empty.

M  +4    -1    containments/desktop/plugins/folder/foldermodel.cpp

https://invent.kde.org/plasma/plasma-desktop/-/commit/0504f0e0ef2b0ebc4f1b1faa9ee8c74d2191931b
Comment 8 Kai Uwe Broulik 2024-03-09 12:41:18 UTC
Git commit 0264726f8720d3093bd3ba10f6107197b4f90be3 by Kai Uwe Broulik.
Committed on 09/03/2024 at 12:33.
Pushed by broulik into branch 'Plasma/6.0'.

Folder Model: Handle invalid URL in desktop file

There's no point in handling an invalid URL, and
KProtocolInfo asserts that the scheme is not empty.


(cherry picked from commit 0504f0e0ef2b0ebc4f1b1faa9ee8c74d2191931b)

M  +4    -1    containments/desktop/plugins/folder/foldermodel.cpp

https://invent.kde.org/plasma/plasma-desktop/-/commit/0264726f8720d3093bd3ba10f6107197b4f90be3
Comment 9 Kai Uwe Broulik 2024-07-17 21:39:15 UTC
Git commit 20e6c20de00e03ebb1c4cf61246f7fbcd1e3fbbc by Kai Uwe Broulik.
Committed on 17/07/2024 at 20:48.
Pushed by broulik into branch 'Plasma/5.27'.

Folder Model: Handle invalid URL in desktop file

There's no point in handling an invalid URL, and
KProtocolInfo asserts that the scheme is not empty.


(cherry picked from commit 0504f0e0ef2b0ebc4f1b1faa9ee8c74d2191931b)

(cherry picked from commit 0264726f8720d3093bd3ba10f6107197b4f90be3)

M  +4    -1    containments/desktop/plugins/folder/foldermodel.cpp

https://invent.kde.org/plasma/plasma-desktop/-/commit/20e6c20de00e03ebb1c4cf61246f7fbcd1e3fbbc