keyboard stops working, maliit and unity8 consuming cpu

Bug #1473720 reported by Jonas G. Drange
60
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
Critical
kevin gunn
messaging-app (Ubuntu)
Invalid
High
Michael Sheldon
qtubuntu (Ubuntu)
Fix Released
Critical
Daniel d'Andrada
ubuntu-keyboard (Ubuntu)
Invalid
Critical
Michael Sheldon
unity8 (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Phone:
Arale @ rc-proposed #61

Reproduce:
1. Open Messaging App
2. Start a conversation
3. Tap messaging area to show keyboard
4. Tap camera icon
5. Take picture and accept it

What happens:
Keyboard goes away and does not come back when focusing the text input.

What should happen:
The keyboard should function normally

Note: only a reboot seems to fix this

Related branches

description: updated
Revision history for this message
Sturm Flut (sturmflut) wrote :

Confirmed on arale rc-proposed r58.

Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in messaging-app (Ubuntu):
status: New → Confirmed
Changed in ubuntu-keyboard (Ubuntu):
status: New → Confirmed
Bill Filler (bfiller)
Changed in canonical-devices-system-image:
milestone: none → ww34-2015
assignee: nobody → Bill Filler (bfiller)
importance: Undecided → High
Changed in messaging-app (Ubuntu):
assignee: nobody → Michael Sheldon (michael-sheldon)
Changed in ubuntu-keyboard (Ubuntu):
assignee: nobody → Michael Sheldon (michael-sheldon)
Changed in messaging-app (Ubuntu):
importance: Undecided → High
Changed in ubuntu-keyboard (Ubuntu):
importance: Undecided → High
Bill Filler (bfiller)
Changed in ubuntu-keyboard (Ubuntu):
importance: High → Critical
Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote :

I can reproduce the same bug here on both krillin and arale.
I noticed that if I kill maliit-server osk is back to normal. I also noticed that both maliit-server and unity8 are consuming a lot of cpu, and after killing maliit-server, both processes are back to normal.

Bill Filler (bfiller)
summary: - Capturing photo in Messaging App makes the keyboard go away and I'm
- unable to get it back
+ keyboard stops working, maliit and unity8 consuming cpu
Changed in canonical-devices-system-image:
status: New → Confirmed
assignee: Bill Filler (bfiller) → kevin gunn (kgunn72)
Changed in ubuntu-keyboard (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Albert Astals Cid (aacid) wrote :

Maybe duplicate of 1470780 ?

Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in unity8 (Ubuntu):
status: New → Confirmed
Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

This seems to be triggered specifically by the fact that camera-app is fullscreen (so possibly also related to bug 1470780 as Albert suggests, since the media player is also fullscreen, however I haven't been able to reproduce that one myself yet). After modifying camera-app to launch in non-fullscreen mode the bug doesn't get triggered.

Attaching GDB to maliit-server shows that it seems to be stuck waiting for a mutex, but without enough debugging info to show where that call originated:

#0 0xb6033d44 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1 0xb602f6b0 in pthread_cond_wait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2 0xb68ba0d8 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#3 0xb64cf9ee in ?? () from /usr/lib/arm-linux-gnueabihf/libQt5Quick.so.5
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Seems the problem was triggered by a change in qtubuntu, with the new faster resizing implementation:

http://bazaar.launchpad.net/~phablet-team/qtubuntu/trunk/revision/266

For some reason this results in the keyboard surface stuck in a loop constantly swapping buffers when returning to the messaging app (the keyboard has to be visible prior to the image import from the camera app, so that its surface gets resized when going to the fullscreen camera and then back to the normal sized messaging window). With that change reverted everything behaves normally.

description: updated
Changed in qtubuntu:
assignee: nobody → Daniel d'Andrada (dandrader)
status: New → In Progress
Bill Filler (bfiller)
Changed in qtubuntu:
importance: Undecided → High
Changed in messaging-app (Ubuntu):
status: Confirmed → Invalid
Changed in ubuntu-keyboard (Ubuntu):
status: In Progress → Invalid
Changed in unity8 (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Daniel d'Andrada (dandrader) wrote :

The last mir-surface-resize event maliit-server gets is of size (768, 1242). Which is midway between fullscreen and regular (non-fullscreen) window size. The switch between fullscreen and regular is animated so it gets many resizes in between during the transition.

The logic is for the client (maliit-server) to swap surface buffers until it gets a buffer with the promised size. Problem is that it never gets a buffer of such size, they're all (768,1222), which is the final non-fullscreen window size. So it keeps swapping buffers for all eternity.

Revision history for this message
Daniel d'Andrada (dandrader) wrote :

anpok's theory is that the render thread is so busy swapping buffers that it doesn't give a change for the main thread to process the pending resize events that came from mir. Because if it did, it would have known that the last resize event had size (768,1222), which matches the size of the buffers the render thread is getting.

kevin gunn (kgunn72)
Changed in canonical-devices-system-image:
status: Confirmed → In Progress
Changed in canonical-devices-system-image:
importance: High → Critical
Changed in qtubuntu:
importance: High → Critical
kevin gunn (kgunn72)
Changed in qtubuntu:
status: In Progress → Fix Committed
kevin gunn (kgunn72)
Changed in canonical-devices-system-image:
status: In Progress → Fix Committed
kevin gunn (kgunn72)
Changed in qtubuntu:
status: Fix Committed → Fix Released
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
Michał Sawicz (saviq)
affects: qtubuntu → qtubuntu (Ubuntu)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.