Unintentionally created CSS @import loop permanently breaks gnome-shell even after loop is undone
Affected version
- Debian 10 (4.19.0-12-amd64 kernel)
- Gnome-shell (3.30.2-11)
- XOrg (1.7.7+19)
Bug summary
When modifying a local user gnome-shell theme, I unintentionally created an @import CSS loop that permanently broke parts of gnome-shell. As soon as I applied the theme, gnome glitches entirely and it logs me out back to the GDM login screen. So far, that's ok.
I tried to log in again via GDM but just after logging in, it keeps glitching and logging me out every single time.
I accessed the machine from another one via SSH to undo the CSS loop and I could finally log back in and I though everything was back to normal.
However, I found that gnome-shell top panel - and bottom panel from window list extension - are not styled anymore as they should (even with the default Adwaita theme). Gnome tweak tools also work erratically, not allowing me to disable some of the extensions at all (window list extension is one of them).
I though some gnome local user configuration got screwed and I tried to erase user dconf and many other potential local user settings. None of them worked out.
Even deleting the user and its group from the system, including its home directory, and adding it back does not solve the issue. Any new user created with the same username gets the gnome-shell non properly styled issue. All other users/usernames do not suffer from the issue, they get normally styled shell, working tweak tools, etc.
If I create a user with the "bad" username and then I simply change its username to something else, the issue goes away. If I change the username back to the "bad" username, the issues comes back.
I had to change that username (which is my normal working user) to something else in order to get a normal gnome / gnome-shell experience.
As such, it seems that when gnome completely glitched initially with the unintentional CSS loop, and even though the CSS loop was undone after that, some kind of gnome system wide setting with the given username (not even with the user UID) got written somewhere.
What kind of setting can this be, where is it located, how to fix it?
Is gnome / gnome-shell suppose to behave like this under an unexpected CSS loop? Should any preventive measures be take by developers to avoid such issues?
This is my very first "bug" report (instead of a bug this could probably be considered a mix of user misuse with faulty system checks) so please bare with me if something is not up to your standards. I'd be glad to correct, learn from it and make it right.
Steps to reproduce
- Simply create an @import CSS loop in gnome-shell.css or in your custom theme css files. An @import css loop means importing a file that is itself already importing the file you are importing from.
- Undo the @import css loop
- Log back in via GDM
- You'll see that top and bottom panels are not styled as they should and gnome tweak tools does not work as expected, not being able to disable at least a few extensions (window list extension is one of them)
What happened
Gnome-shell top and bottom panels stopped being styled as they should. They became white/grey bars and not as defined by the selected gnome theme, which could be a black bar for instance. Clock position also got switched.
What did you expect to happen
After undoing the loop, I was expecting everything to go back to normal.
Once it didn't work, after erasing local user configurations or even after deleting the user and adding it back, I was expecting everything to go back to normal. Once again, it didn't.
Relevant logs, screenshots, screencasts etc.
Is there any relevant logs I could grab?
Bad user gnome-shell screenshot
Good user gnome-shell screenshot