"Enter" hangs when using it entering password with onboard in lightdm

Bug #978430 reported by Jan Simon on 2012-04-10
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Onboard
Medium
Unassigned
Unity Greeter
Fix Released
Undecided
Unassigned
onboard (Ubuntu)
Undecided
Unassigned
unity-greeter (Ubuntu)
Undecided
Unassigned

Bug Description

When i enter my login password in lightdm using onboard and hit "enter" at the end on the onscreen keyboard, the key hangs in unity, which causes strange behaviour.

I use Precise beta with onboard 0.97.0-0ubuntu3 and lightdm 1.2.0-0ubuntu2

Related branches

Jan Simon (jan-simon) on 2012-04-10
affects: onboard (Ubuntu) → lightdm (Ubuntu)
affects: lightdm (Ubuntu) → onboard (Ubuntu)
tags: added: a11y
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in onboard (Ubuntu):
status: New → Confirmed
marmuta (marmuta) wrote :

Thanks for the bug report. What happens is that Onboard is killed right after sending the key press event and doesn't get to release the enter key anymore.

What I think needs to be done is to have unity-greeter kill Onboard with SIGTERM instead of SIGKILL and have onboard react to this by releasing all pressed keys.

affects: lightdm → unity-greeter
Changed in unity-greeter:
status: New → Confirmed
Changed in onboard:
status: New → Confirmed
importance: Undecided → Medium
marmuta (marmuta) wrote :

The fix for Onboard is in trunk and branch 0.97, keys are released on SIGTERM.
I'll link a branch for unit-greeter too. Francesco and me tested both and couldn't get enter stuck anymore. Robert or Michael, If you get the chance please check it out.

Changed in onboard:
status: Confirmed → Fix Committed
Francesco Fumanti (frafu) wrote :

The problem is still occurring in version 12.10.0 of unity-greeter.

Matt Fischer (mfisch) wrote :

I'm using 12.04 and I either cannot repro this or don't fully understand what a stuck key would do in Ubuntu.

I typed my password in with onboard, but then hit Enter on the physical keyboard. I noticed no odd behavior in Unity. What exactly should I be looking for after login?

ii unity-greeter 0.2.8-0ubuntu1.1 Unity Greeter
ii onboard 0.97.0-0ubuntu3 Simple On-screen Keyboard

Changed in onboard (Ubuntu):
assignee: nobody → Matt Fischer (mfisch)
Changed in unity-greeter:
assignee: nobody → Matt Fischer (mfisch)
Matt Fischer (mfisch) wrote :

I should add that unity-greeter is still using SIGKILL and not SIGTERM.

marmuta (marmuta) wrote :

You'd need to press enter with Onboard to reproduce this. When enter is clicked, Onboard fakes pressing enter down, then gets killed before it can send the key-release. X thinks the key is still pressed down, key repeat sets it and everything is spammed with n enter presses per second, wreaking all kinds of havoc on the desktop. The effect is the same as if you forever held down the enter key on you physical keyboard.
It might not always be reproducible, though. If the greeter takes just long enough to kill Onboard everything may be fine. I've seen it happen on Quantal not long ago though.
Thanks for looking at those bug reports btw. :)

Matt Fischer (mfisch) on 2012-07-28
Changed in unity-greeter:
assignee: Matt Fischer (mfisch) → nobody
Changed in onboard (Ubuntu):
assignee: Matt Fischer (mfisch) → nobody
marmuta (marmuta) wrote :

Anything else I can do to help this bug move forward? I'd appreciate any feedback on the linked branch, what should be improved?

Launchpad Janitor (janitor) wrote :
Download full text (4.7 KiB)

This bug was fixed in the package onboard - 0.98.0-0ubuntu1

---------------
onboard (0.98.0-0ubuntu1) quantal; urgency=low

  * Freeze exception request for new upstream release (LP: #1041303)
  * debian/pycompat: removed as not used anymore
  * debian/control:
    - Build-Depends:
      + replace python and python-all-dev with python3-all-dev
      + replace python-distutils-extra with python3-distutils-extra
      + remove libxi-dev as libgtk-3-dev pulls it in
    - remove X-Python-Version and set X-Python3-Version: >= 3.2
    - Depends:
      + remove ${python:Depends}, python-cairo, python-dbus,
        python-virtkey (>= 0.60.0) and gir1.2-wnck-3.0
      + add ${python3:Depends}, python3-cairo, python3-gi-cairo,
        python3-dbus and python3-virtkey (>= 0.61.0)
  * debian/rules:
    - enhance it to work with python2 and python3
    - add procedure to switch between python2 and python3
    - add --without python-support to appease lintian
  * debian/onboard.lintian-override:
    - override missing manual message
    - override extra-license-file message
  * Move gsettings path to /org/onboard (LP: #982699); thanks R. Ancell
  * Various visual improvements:
    - push down effect on keys
    - keys now have shadows
    - smaller touch handles
    - tweak images used by click buttons and other keys
    - smoother transparency transitions
  * Detect window manager to care for its specificities
  * Add command line option to override automatic environment detection
  * Mark command line help as translatable
  * Add middle click in hover click mode; requires mousetweaks >= 3.3.90
  * Various auto-show fixes
  * Stop endless loop of auto-show on top of unity dash
  * Fix some show/hide problems
  * Stop wiggling of launcher icons on show/hide of keyboard window
  * Various python3 adaptions, trying to keep python2 compatibility
  * Move to python3 needs virtkey version >= 0.61.0
  * Switch all translated strings to unicode (LP: #933030)
  * Make python3 the default
  * Don't show disabled buttons when XEmbedding (LP: #1019593)
  * Don't create the icon palette when XEmbedding
  * Add new color scheme to follow the HighContrastInverse theme update
  * Stayon top of full-screen windows in force-to-top mode (LP: #1035578)
  * Fix keyboard and icon palette not always above dash
  * Add lockdown key to disable all dwell-activation
  * Adapt to WM_NAMEs of Unity version 6
  * Write message listing dependencies when sdist fails
  * Add tests to check translations for errors, uses python-nose
  * Make Onboard more robust against translation errors
  * Make icon palette dwellable
  * Add dconf version detection, thanks Robert Ancell
  * Fix Super key (LP: #900191)
  * Make menu key pop up context menu
  * Separate layout loading from the keyboard widget
  * Improve exception handling for theme and color files
  * Limit keyboard size when it doesn't fit on screen (LP: #991318)
  * Trap various X BadWindow errors (LP: #1016980)
  * Work around regression of configure event in quantal
  * Remove wnck dependency as gtk3's window-state-event reports iconification
  * Prevent zombie process when launching preferences (LP: #936332)
  * Only appear in gnome...

Read more...

Changed in onboard (Ubuntu):
status: Confirmed → Fix Released
Jan Simon (jan-simon) on 2012-09-22
Changed in unity-greeter:
status: Confirmed → Fix Released
Jan Simon (jan-simon) on 2012-09-24
Changed in onboard:
status: Fix Committed → Fix Released
Changed in onboard:
status: Fix Released → New
Francesco Fumanti (frafu) wrote :

The problem is still occurring here with version 12.10.3-0ubuntu2 of unity-greeter. It does not happen on every login, but it happened again two days ago and today,

I wanted to also reopen the unity-greeter part of this bug, but I was not able to.

Francesco Fumanti (frafu) wrote :

I have been told, that the problem not only is the fact, that unity-greeter uses SIGKILL instead of SIGTERM; there is also the problem of the code containing the SIG command is not reached:
https://code.launchpad.net/~marmuta/unity-greeter/kill-onboard-with-sigterm/+merge/101889

Could you please have another look at it?

Thanks in advance.

Michael Terry (mterry) wrote :

I'd like you to test with 12.10.4-0ubuntu1 once it hits the archives. I think this behavior is better (we kill onboard cleanly on exit now).

Francesco Fumanti (frafu) wrote :

Michael, thanks for your reply.

I will let you know...

Francesco Fumanti (frafu) wrote :

Unity-greeter 12.10.4-0ubuntu1 is now available in the repository and after installing it, the problem is still occurring here (after shutting down and restarting the computer).

Could anybody else please confirm that it still is an issue that also happens on their system?

Thanks in advance.

Michael Terry (mterry) wrote :

OK, I believe you, just can't reproduce. Which makes it hard to review/test branches with a fix.

Version 12.10.4 just contained a fix for the SIG code not even being reached. According to marmuta, we need to additionally use SIGTERM instead of SIGKILL.

But I can't reproduce... :(

marmuta (marmuta) wrote :

Try clicking more slowly. I just reproduced it by holding the button down on the return key for a second. I have gnome-terminal auto-starting in the session and it starts scrolling from all the enter presses right after activating it.

And yes, without sending SIGTERM Onboard doesn't get the chance to clean up and release pressed keys. The linked branch does that and in case anything gets stuck it sends a SIGKILL too for good measure. That was just a suggestion, but perhaps you can re-use some of the pieces.

Another option may be to make the greeter log in on key release instead of key press when hitting return. Onboard wouldn't have to release any keys that way. I felt that was a more invasive change, though, so I haven't suggested it.

Michael Terry (mterry) wrote :

marmuta, did you experience times when onboard didn't die after a SIGTERM (and thus the SIGKILL fallback was necessary), or was that just in case it did happen?

marmuta (marmuta) wrote :

That SIGKILL after SIGTERM was just a precaution. I felt the greeter should be able to kill Onboard dead in case anything unforeseen happens. Fixing this bug better not prevent you from logging in, I thought. However, in my tests Onboard always shut down rapidly on SIGTERM. It's not writing anything to disk then either. The only times the branched greeter got to actually send SIGKILL was when I deliberately added a delay to Onboard's SIGTERM handler for testing.

Michael Terry (mterry) wrote :

OK, I have a branch that merely turns the SIGKILL into SIGTERM (a simpler change this late in the cycle). I also uploaded it as a patch to Ubuntu.

Thank you marmuta and Francesco for walking me through this, as I couldn't reproduce. I'm eager to hear if 12.10.4-0ubuntu3 will fix this for you.

(FYI marmuta, I couldn't have merged your branch if I wanted to. You are not yet a Canonical contributor agreement signee, which is required for unity-greeter. http://www.canonical.com/contributors )

Changed in unity-greeter:
status: Fix Released → Confirmed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity-greeter - 12.10.4-0ubuntu3

---------------
unity-greeter (12.10.4-0ubuntu3) quantal; urgency=low

  * debian/patches/sigterm-onboard.patch:
    - Send SIGTERM not SIGKILL to onboard, to allow it to release keys
      LP: #978430
 -- Michael Terry <email address hidden> Wed, 03 Oct 2012 10:17:06 -0400

Changed in unity-greeter (Ubuntu):
status: New → Fix Released
Francesco Fumanti (frafu) wrote :

unity-greeter 12.10.4-0ubuntu3 seems to have fixed the issue: I logged out and in several times, and even restarted the computer three times without the issue appearing again. However, as the problem did not occur on every login, I cannot tell for sure whether it is really fixed.

I am marking this bug as Fix Released as I think it to be fixed; I will reopen it if the problem occurs again.

Changed in onboard:
status: New → Fix Released
Changed in unity-greeter:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers