Ibus causes gnome-shell to freeze when password fields are selected in Firefox
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ibus (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Bionic |
Fix Released
|
Medium
|
Matthew Ruffell |
Bug Description
[Impact]
The following has been seen in a VMware Horizon VDI. I cannot reproduce this
issue myself.
When a user interacts with any password field in Firefox, gnome-shell and Firefox both freeze and the system becomes unusable. If you ssh into the system and terminate Firefox, gnome-shell unfreezes.
This only happens when the environment variable GTK_IM_MODULE is set to "ibus". If you unset the variable, or change it to
GTK_IM_
This has been seen before with gnome-shell 3.28.4-
1.5.17-3ubuntu4 and Firefox versions starting with 68.0+build3-
Note: Chrome[ium] and other applications do not trigger it, and it cannot be
reproduced in other desktop environments.
This seems to be an interaction issue between ibus and gnome-shell.
[Test Case]
Launch firefox from within a gnome-session, making sure the GTK_IM_MODULE is set to "ibus". Note, this is the default value.
$ env GTK_IM_
Navigate to any website which has a password field. Wikipedia or Reddit will do.
Click a password field and attempt to enter text. Firefox and gnome-shell both lock up and stay frozen for an extended period of time.
Now, try it with the fix by enabling:
$ env IBUS_DISCARD_
When you enter text into a password field, ibus should directly pass through
the text and the problem will be solved.
We can also ask it to always apply for a specific application with:
$ export IBUS_DISCARD_
$ firefox
Again, when you enter text into a password input field, the problem will be
solved.
Test package is available here:
https:/
Please test with the revised version, 1.5.17-
[Regression Potential]
This change has a low risk of regression, because the default behaviour is
unchanged. To be able to use the password input field discard functionality, a user has to explicitly set an environment variable for the specific process, or set a regex that matches a process name.
This means the fix is not enabled by default on any machines, and will only be utilised by those suffering problems and go and manually set environment variables or have their system administrator enable the environment variables permanently.
This commit is present in upstream ibus from version ibus-1.5.19 onward, and is currently present in cosmic, disco and eoan.
If a regression occurs, users can ensure that the environment variables are unset and continue working.
[Other info]
* This patch is functionally the same as ibus-xx-
* When ibus is built with the patch ibus-xx-
Instead of using ibus-xx-
upstream commit f328fd67f479faa
https:/
Subject: client/gtk2: Add IBUS_DISCARD_
Author: fujiwarat <email address hidden>
This implements the password discard functionality found in
ibus-xx-
IBUS_DISCARD_
IBUS_DISCARD_
lets you set a regex of process names to filter and enable the fix for.
If IBUS_DISCARD_
* This only affect Bionic
- Upstream first introduction:
$ git describe --contains f328fd67f479faa
1.5.19~7
- Ubuntu ibus current version found in the archive:
$ rmadison ibus
==> ibus | 1.5.17-3ubuntu4 | bionic
ibus | 1.5.19-1ubuntu1 | cosmic
ibus | 1.5.19-1ubuntu2 | disco
ibus | 1.5.19-4ubuntu2 | eoan
Changed in ibus (Ubuntu Bionic): | |
status: | New → In Progress |
assignee: | nobody → Matthew Ruffell (mruffell) |
importance: | Undecided → Medium |
description: | updated |
tags: | added: sts |
description: | updated |
Changed in ibus (Ubuntu): | |
importance: | Undecided → Medium |
description: | updated |
Changed in ibus (Ubuntu): | |
status: | Confirmed → Fix Released |
tags: | removed: sts-sponsor |
Attached is the debdiff for bionic which restores ibus-xx- f19-password. patch