Summary: | Workspace appearance kcm crashed | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Paul Mendez <paulestebanms> |
Component: | decorations | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | barraca13, cfeck, daniel.zwinkmann, paulestebanms, smday26 |
Priority: | NOR | ||
Version: | 4.8.90 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Paul Mendez
2012-06-17 00:23:10 UTC
Depending on wether "Crystal" decoration uses stable or unstable API, this is either bug 301728 or bug 301646. Created attachment 71875 [details]
New crash information added by DrKonqi
systemsettings (1.0) on KDE Platform 4.8.90 (4.8.90) using Qt 4.8.1
- What I was doing when the application crashed: workspace appareance crash every time I try to open it
- Custom settings of the application: Qtcurve and dekorator installed. Using a custom native kwin decoration
-- Backtrace (Reduced):
#6 0x00007f3fe15b2300 in KDecorationOptions::showTooltips() const () from /usr/lib/libkdecorations.so.4
#7 0x00007f3fe15b23a7 in KDecoration::createMainWidget(QFlags<Qt::WindowType>) () from /usr/lib/libkdecorations.so.4
[...]
#9 0x00007f3ff1b00e32 in KDecorationPreview::recreateDecoration (this=0x23325b0, plugins=0x2332500) at ../../../../kwin/kcmkwin/kwindecoration/preview.cpp:77
#10 0x00007f3ff1b02e95 in KWin::DecorationModel::regeneratePreview (this=0x23323d0, index=..., size=...) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:311
#11 0x00007f3ff1b031f5 in KWin::DecorationModel::regenerateNextPreview (this=0x23323d0) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:262
Console output with dekorator installed: kcmshell4 kwindecoration kcmshell(14754)/kwin KDecorationPlugins::loadPlugin: "****** The library /usr/lib/kde4/kwin3_deKorator.so has no API version Please use the KWIN_DECORATION or future versions of kwin will no longer load this decoration! *******" KCrash: Application 'kcmshell4' crashing... - With dekorator uninstalled: kcmshell4 kwindecoration kcmshell(31454)/kwin KDecorationPlugins::loadPlugin: "****** The library /usr/lib/kde4/kwin3_qtcurve.so has no API version Please use the KWIN_DECORATION or future versions of kwin will no longer load this decoration! *******" KCrash: Application 'kcmshell4' crashing... - Finally, removing QtCurve solves the problem Qtcurve version installed: kde-style-qtcurve (1.8.11-1) *** Bug 302082 has been marked as a duplicate of this bug. *** *** Bug 302662 has been marked as a duplicate of this bug. *** do we have a solution for this issue? Would raising the .so number prevent that the library gets loaded? we'd have to raise libkdecoration.so.4 to libkdecoration.so.5 we also could make the API check mandatory - ie. not do a relaxed load if the API version is not exported by the decoration. pro: no crash con: mismatching decos won't load (even if binary compatible) the ABI break for the stable variant is likely in the removed/renamed ClientGroup classes/functions (mimetype) which back then slipped into the stable API, but compiling the bespin deco against that API and then removing them didn't crash the bespin deco (because the functions were not used, but this may relate to a compiler optimization) i guess re-adding them as dummies should do - the skulpture bug should have them attached, but the decos inheriting the unstable API (oxygen-transparent, qtcurve, pot. crystal - Christoph can likely tell about dekorator/smaragd) would inevitably still crash (and also not recompile out of the box) I'd preferred to have a simpler transition for Hugo, Craig and Christoph (mainly) but if all decos just crash it's likely better to do a hard cut now and require exporting the API version (not loading them and still yell the warning should do for developers + we can send a broadcsat) I would vote for the no-crash. In most cases it would just mean for the distributions to rebuild the packages of the decorations. By explicitly breaking the ABI they will notice it. Skulpture, Smaragd, DeKorator, and Domino all use the stable decoration APIs. Actually that's the reason why I never implemented tabbing - API that is marked unstable scares me :)
> By explicitly breaking the ABI they will notice it.
Not nice, honestly. Especially considering that there is no reason for breaking the API in this case.
> Skulpture, Smaragd, DeKorator, and Domino all use the stable decoration
> APIs. Actually that's the reason why I never implemented tabbing - API that
> is marked unstable scares me :)
if I summarize that means the only decorations causing problems are QtCurve
and Crystal.
In that case I will send a mail to both, inform them and ask them to do a new
release in time for 4.9. And invite them to get their code into kwin.
We also need to figure what ultimately causes the ABI segfaults in skulpture etc. (ie. re-introduce the old ClientGroup related API to the stable API "as good as possible" - and hope for the best. we could also* let through some decorations and enforce the API version tag for all others (or vv.) so that we can avoid crashes in QtCurve (falling back to oxygen) yet still enable skulpture or <place random legacy deco flying around on my HDD here> *"for now" - we want to straighten and have to extend the decoration API thus a break and thus version tagging (better than the unstable class) become inevitable. I'll write some patches later this day (there's also a crash in the kcm when a decoration plugin fails to load - somewhere int setTempButtons or so and non-loaded decos become blank space in the kcm because they're not removed from the model list on failure) crystal uses unstable API as checked for the patches *** This bug has been marked as a duplicate of bug 301646 *** *** Bug 302850 has been marked as a duplicate of this bug. *** |