BuddiesOfBudgie / budgie-desktop

Budgie Desktop is a familiar, modern desktop environment.
https://buddiesofbudgie.org
GNU General Public License v2.0
963 stars 50 forks source link

[Bug] Adding the Keyboard Layout applet causes the DE to fail #319

Closed AKotov-dev closed 6 months ago

AKotov-dev commented 1 year ago

Description

Hello. Budgie Desktop-10.7.1, Mageia-9.

Problem: If you add the Keyboard Layout applet to the bottom panel and reboot, the panel no longer loads and the system hangs: the hard disk arrives in some kind of write/read cycle, the keyboard does not work. The only method is the system Reset button.

Best regards, Alex

Budgie version

budgie-desktop 10.7.1

Operating System

Mageia-9

Steps to reproduce the issue

Add the Keyboard Layout applet and restart your computer.

Actual result

DE does not load.

Expected result

The DE is supposed to boot sometime.

Additional information

No response

serebit commented 1 year ago

Can you reproduce this by relogging after adding the applet (i.e. log out and log back in) or is it only when rebooting?

AKotov-dev commented 1 year ago

After log out and re-entry, the mouse and keyboard do not work. That is, the effect is about the same, except that now I see the bottom panel, but mouse clicks on it do not work.

baraclese commented 1 year ago

I believe I encountered the same bug on arch linux with the update from ibus 1.5.27 to 1.5.28, downgrading ibus (and libibus) to 1.5.27 fixed the problem.

serebit commented 1 year ago

Of course it's ibus...

fossfreedom commented 1 year ago

Please can affected people describe their keyboard layouts. What are they? Are you using ibus? If so what is your ibus setup? Basically we need more info to be able to reproduce this.

As an aside we have .28 on ubuntu and we haven't noticed any issues with en_US

serebit commented 1 year ago

I can't reproduce this on Arch with ibus .28.

AKotov-dev commented 1 year ago

Guys, this may seem strange... But having QEMU on hand and the ability to create/use several clones of already installed/configured systems with Budgie-10.7.1 without the Keyboard Layout applet, after destroying another unsuccessful copy, I found out that if you add not only a single Keyboard Layout to the panel, but also the Night Light applet with it, then everything works after exit/login and after reboot. However, if you delete the Night Light applet and leave only the Keyboard Layout, then DE does not load again (see screenshot).

Snapshot_2023-02-25_22-53-46

I understand that it looks silly from my side, but maybe it will give you some thoughts... :)

p.s. Keyboard Layout = [EN/RU].

> rpm -qi ibus
Name        : ibus
Version     : 1.5.28
Release     : 1.mga9
...

Sincerely, Alex

baraclese commented 1 year ago

Keyboard Layouts are US and Japanese (with ibus-kkc). I use a panel which has this structure: Snapshot_top_panel

fossfreedom commented 1 year ago

'fraid still cannot reproduce with the above two instruction variants on Ubuntu lunar.

When you have the DE issues please can you switch to a TTY (CTRL+ALT+F3), login and run

journalctl -ae --full

Use the arrow keys to move around - see if there are any obvious issues around the time of the DE failures - usually the text will be in either yellow or red.

baraclese commented 1 year ago

I couldn't get useful information from the journal. I was able to start btop and saw that the budgie-panel process was at 100% load and very quickly used up all the RAM until the system froze.

AKotov-dev commented 1 year ago

Additionally, I tested Budgie-10.7.1 in Fedora-37 and everything works there, there are no problems. I tend to think that something else has not been fully updated in Mageia-9. Nothing else comes to mind... I installed the two applets I wrote about above. For now I will work like this. And I also could not get the journalctl output due to the system freezing. :(

fossfreedom commented 1 year ago

The only thing I can think of here is to install the debug symbols for budgie-desktop using whatever instructions are relevant to your distro

Then using gdb to attach to the budgie-panel --replace running process and watch for whatever is basically spinning out of control

https://stackoverflow.com/questions/2308653/can-i-use-gdb-to-debug-a-running-process

AKotov-dev commented 1 year ago

@fossfreedom

Thanks. In the meantime, here, I managed to take a screenshot when starting budgie-desktop --replace &! from IceWM with Keyboard Layout installed:

1

Then I launch from the Menu-IBus Settings. It outputs a warning that IBus is not being executed. Run it?. I press Yes and Keyboard Layout starts working and switching input languages and works well. He also suggests adding some lines to $HOME/.bashrc:

2

After adding these lines and restarting the computer, I see that ibus is not running and I start it and start it again budgie-desktop --replace &!

3

The result is that everything freezes again and the hard disk is constantly in a write/read cycle. After some time, the panel disappears altogether. What conclusions can be drawn from this? Thanks.

AKotov-dev commented 1 year ago

Additionally:

If you run ibus after the budgie-panel starts, then everything works fine, and if before the budgie-panel starts, then everything freezes.

In other words - it looks like this (I have problems with English, sorry, I'd rather show you):

So - Keyboard Layout starts and works well:

budgie-panel --replace & sleep 3 && ibus-daemon -d

...killing processes (cleaning for the test)

killall budgie-panel ibus-daemon

So (starting in reverse order) - the computer freezes and everything freezes:

ibus-daemon -d && sleep 3 && budgie-panel --replace &!

Maybe it will come in handy? Thanks.

fossfreedom commented 1 year ago

ibus-daemon is started by budgie-wm - https://github.com/BuddiesOfBudgie/budgie-desktop/blob/main/src/wm/ibus.vala#L76 - The fact that you have had to start ibus-daemon before the panel is worrying.

Is there anything in the journal ibus related?

journalctl -ae | grep -i ibus

if you kill ibus-daemon and start it up again using the parameters budgie currently expect are there any errors/warning reported?

ibus-daemon --xim --panel disable
AKotov-dev commented 1 year ago

I started journalctl -f (in real time in a separate terminal) and after about 2 minutes of waiting, this came out. Is that by any chance the wrong thing? :)

portal IBus

That is: dbus-daemon[1411]: [session uid=1411] Failed to activate service 'org.freedesktop.portal.IBus': time out (service_start_time out=12000ms)

fossfreedom commented 1 year ago

"current session already has an ibus-daemon"

Did you check and kill all ibus related processes first? Use ps -ef | grep -i ibus

Worth also checking the output of that command carefully to see how the current ibus processes have been initiated before killing them.

I think we need to see the output of this to see what happens on login

journalctl -ae | grep -i ibus
AKotov-dev commented 1 year ago

oops... ok... With this parameter ibus-daemon --xim --panel disable:

222

Now, if you run everything at once...

killall budgie-panel ibus-daemon
ibus-daemon --xim --panel disable & sleep 3 && budgie-panel --replace &!

...then again everything hangs and the log is not output, a complete freeze of the system:

333

And after about 5 minutes:

1987 Killed              budgie-panel --replace
fossfreedom commented 1 year ago

image

That shows other budgie elements are not running as well.

Please confirm you are actually using lightdm with slick-greeter as your login manager. i.e. you are not using GDM3.

AKotov-dev commented 1 year ago

I used lxdm. Right now I have installed lightdm and have already logged in through it. The result has not changed. By the way, Fedora-37 uses GDM and there are no problems. Is lightdm a prerequisite for Budgie? Then how to explain that Budgie is 10.6.4 + lxdm works now, if you install it?

AKotov-dev commented 1 year ago

See: https://pkgs.org/search/?q=ibus

I suspect that Fedora-37 + Budgie-10.7.1 works because ibus-1.5.27 is installed in it. Let me remind you that in Mageia-9 ibus-1.5.28. By the way, in Ubuntu 22.04 LTS (Jammy Jellyfish) maximum version = ibus-1.5.26.

Now I will try to install ArchLinux (+ ArchLinux Extra x86_64 repo) with ibus-1.5.28 + Keyboard Layout with two input languages. With this I want to confirm or refute baraclese's theory about the upcoming regression.

Please, wait for the test results. Thanks...

AKotov-dev commented 1 year ago

Test results in Arch Linux-2023.02.01 (ibus-1.5.28-1)

The version with a downgrade to ibus-1.5.27 for Arch Linux-2023.02.01 is not confirmed (see screenshot). In Arch Linux-2023.02.01 (ibus-1.5.28-1) Keyboard Layout switches languages perfectly and there are no problems with loading and freezing the system.

ArchLinux-2023 02 01_Clone2-RU

I have no more questions for the developers. Thank you all very much for the consultations provided. If you deem it necessary, this bug can be closed.

Sincerely, Alex

baraclese commented 1 year ago

Today I have some time to look into this and installed a VM with Arch Linux. I was able to reproduce the error with the following setup: prerequisite:

setup budgie:

baraclese commented 1 year ago

I bisected ibus to this first bad commit: https://github.com/ibus/ibus/commit/19ca10651890ce0d88ec613de0e8930090105dc8

serebit commented 1 year ago

So the question remains, is this an ibus bug or a Budgie bug?

NeWolf1 commented 1 year ago

Keyboard layout doesn't seem to be relevant. I have only US keyboard layout and locale.conf, locale.gen is set to en_GB.UTF-8

stereotypy commented 1 year ago

Found out this is what was causing the segfault here: https://github.com/BuddiesOfBudgie/budgie-desktop/issues/446

This was introduced with the Budgie 10.8 update for me. People clearly still having issues with this recently around the update such as here: https://github.com/BuddiesOfBudgie/budgie-desktop/issues/441 and here: https://forum.endeavouros.com/t/keyboard-layout-applet-breaks-budgie/44245

@EbonJaeger @JoshStrobl looks like the fix still hasn't resolved it for folks.

This broke things so badly for me that I had to run dconf reset -f /com/solus-project/budgie-panel/ instead of the regular nohup command.

serebit commented 1 year ago

Is this still happening? If it is, can you follow the steps in https://docs.buddiesofbudgie.org/developer/workflow/providing-backtraces so we can see where the segfault is occurring?

AKotov-dev commented 10 months ago

Hello dear serebit. I apologize for the long absence of information on my part on this issue. I was forced to disable the notification service on my GitHub due to GitHub spam.

Regarding the issue, I can report the following: with the release of Budgie-v10.8 there are no more problems and DE works stably. This allowed me to release the next builds of my Mageia derivative. So you can clearly see that Budgie-v10.8.2 is working.

Budgie-v10 8 2-Proserpina

Thank you very much for your work. I congratulate everyone on the upcoming New Year, wish you good luck to all your projects and don’t say goodbye.

Sincerely, Alex


Edited by @JoshStrobl: Removed off-topic or not appropriate commentary from comment.

AKotov-dev commented 10 months ago

Additionally, regarding the question full desktop crush after adding widgets #500 (see above, JoshStrobl mentioned this issue), I would like to inform you that a common reason for logging out with the error shown there in the screenshot is hardware acceleration. If you remove the gstreamer1.0-vaapi (gstreamer1-vaapi in Fedora) package and reboot, i.e. use only software acceleration, then perhaps the problem should go away. I release my builds exclusively with software graphics acceleration, since it is unknown which card and drivers will be used. This is most likely a GNOME issue, but not certain.

Sincerely, Alex

AKotov-dev commented 6 months ago

Hello, dear serebit and JoshStrobl. I hasten to report that Budgie-v10.9.1 works great and the keyboard layout too.

Budgie-10 9 1

For this version we had to additionally build a package for budgie-session instead of gnome-session. Today there are already: budgie-control-center, budgie-screensaver and budgie-session. Taking this opportunity, if you don’t mind, I would like to ask: in the future, do you plan to convert all dependencies with the gnome-* prefix to budgie-* (gnome-bluetooth, gnome-alsamixer, gnome-calculator, etc... )? I just don’t really understand the whole process, that’s why I had a question. Thank you.

Sincerely, Alex

JoshStrobl commented 6 months ago

No. Budgie 11 will not be based on GNOME and we have no plans at this time on forking more components developed by GNOME for Budgie 10 series.

You can read on why budgie-session exists at https://buddiesofbudgie.org/blog/budgie-10-9-released