Bug 460773 - Cyclical dependency between default icon themes causes many apps to crash
Summary: Cyclical dependency between default icon themes causes many apps to crash
Status: RESOLVED UPSTREAM
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_cursortheme (show other bugs)
Version: 5.25.5
Platform: Fedora RPMs Linux
: VHI crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-20 16:29 UTC by Teodor Potancok
Modified: 2022-10-21 15:51 UTC (History)
2 users (show)

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


Attachments
A gdb backtrace showing the infinite recursion (8.23 KB, text/plain)
2022-10-20 16:29 UTC, Teodor Potancok
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Teodor Potancok 2022-10-20 16:29:13 UTC
Created attachment 153061 [details]
A gdb backtrace showing the infinite recursion

SUMMARY
The `breeze` icon theme has a dependency on `papirus`, which in turn depends on `breeze`. This causes an infinite recursion and segfault in the `XcursorScanTheme()` function of `libXcursor.so.1`. Affects Konsole (app and part), KWrite, the Cursors section of System Settings, the Steam client launcher and possibly others.

STEPS TO REPRODUCE
1. Open Konsole
2. Type anything into the console window
3. ???
4. Crash!

OBSERVED RESULT
The console window freezes and the whole app crashes in a few seconds.

EXPECTED RESULT
Cursors get properly loaded without infinite recursion and the app works as expected.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora Linux 36 KDE
KDE Plasma Version:  5.25.5
KDE Frameworks Version: 5.98.0
Qt Version: 5.15.6

ADDITIONAL INFORMATION
Also filed at https://bugzilla.redhat.com/show_bug.cgi?id=2136390
Comment 1 Nate Graham 2022-10-20 20:14:33 UTC
This was fixed in Plasma 5.26 to not explode when cyclic dependencies are detected.

That said...

> The `breeze` icon theme has a dependency on `papirus`
It definitely does not. Where are you seeing this?
Comment 2 Nicolas Fella 2022-10-20 23:40:58 UTC
> This was fixed in Plasma 5.26 to not explode when cyclic dependencies are detected.

We fixed it in kwin_wayland, but it seems xcursor has the same problem
Comment 3 Nate Graham 2022-10-21 15:37:02 UTC
Urgh.

Still, I'm curious how Breeze has gotten marked as depending on Papirus. We're not doing that upstream.
Comment 4 Nate Graham 2022-10-21 15:37:23 UTC
Speaking of upstream, I guess this needs to be fixed in libXcursor?
Comment 5 Nicolas Fella 2022-10-21 15:43:27 UTC
(In reply to Nate Graham from comment #4)
> Speaking of upstream, I guess this needs to be fixed in libXcursor?

yes
Comment 6 Nate Graham 2022-10-21 15:51:37 UTC
Teodor, can you file a bug report at https://gitlab.freedesktop.org/xorg/lib/libxcursor/-/issues? Thanks!