Crash because uncaught exception in mir::events::add_touch
Bug #1437357 reported by
Albert Astals Cid
This bug affects 4 people
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
Critical
|
kevin gunn | |||
Mir |
Fix Released
|
Critical
|
Robert Carr | |||
0.13 |
Fix Released
|
Critical
|
Robert Carr | |||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | |||
qtmir (Ubuntu) | ||||||
Vivid |
Fix Released
|
Undecided
|
Daniel d'Andrada |
Bug Description
Timo has a crash in which unity8 crashes because a throw exception in mir::events:
libmirclient8 0.12.1+
qtmir-android 0.4.4+15.
Related branches
lp:~dandrader/qtmir/oneUpDownPerEvent-lp1437357
- Gerry Boland (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 505 lines (+268/-46)7 files modifiedsrc/common/debughelpers.cpp (+47/-0)
src/common/debughelpers.h (+5/-1)
src/platforms/mirserver/CMakeLists.txt (+5/-3)
src/platforms/mirserver/qteventfeeder.cpp (+66/-23)
src/platforms/mirserver/qteventfeeder.h (+4/-1)
tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h (+5/-0)
tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp (+136/-18)
lp:~mir-team/mir/reduce-event-pedantism-for-1437357
- PS Jenkins bot (community): Approve (continuous-integration)
- Kevin DuBois (community): Approve
- Alan Griffiths: Needs Information
- Alexandros Frantzis (community): Approve
- Alberto Aguirre (community): Approve
- Chris Halse Rogers: Approve
-
Diff: 22 lines (+4/-1)1 file modifiedsrc/client/events/event_builders.cpp (+4/-1)
Changed in qtmir: | |
assignee: | nobody → Daniel d'Andrada (dandrader) |
status: | New → In Progress |
Changed in qtmir: | |
status: | In Progress → Fix Released |
Changed in qtmir (Ubuntu Vivid): | |
status: | New → Fix Released |
Changed in canonical-devices-system-image: | |
status: | New → Fix Released |
Changed in canonical-devices-system-image: | |
milestone: | none → ww22-2015 |
Changed in canonical-devices-system-image: | |
status: | Fix Released → In Progress |
importance: | Undecided → High |
assignee: | nobody → kevin gunn (kgunn72) |
Changed in canonical-devices-system-image: | |
importance: | High → Critical |
tags: | added: input |
Changed in mir: | |
milestone: | none → 0.14.0 |
status: | New → In Progress |
Changed in mir: | |
milestone: | 0.14.0 → 0.13.1 |
affects: | mir → ubuntu-rtm |
Changed in ubuntu-rtm: | |
milestone: | 0.13.1 → none |
affects: | ubuntu-rtm → mir |
Changed in mir: | |
milestone: | none → 0.13.1 |
Changed in canonical-devices-system-image: | |
status: | In Progress → Fix Released |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in qtmir: | |
status: | In Progress → Fix Released |
Changed in qtmir (Ubuntu Vivid): | |
assignee: | nobody → Daniel d'Andrada (dandrader) |
no longer affects: | qtmir |
To post a comment you must log in.
As bug 1454711 shows, it's still possible to make it crash like that if you rapidly tap with many fingers simultaneously on the screen.
You get that in unity8.log:
""" :exception_ detail: :clone_ impl<boost: :exception_ detail: :error_ info_injector< std::logic_ error> >'
qtmir.mir.input: Would move a touch that wasn't pressed before (id = 15 ). Making it press instead.
qtmir.mir.input: There's a touch (id = 14 ) missing. Releasing it.
qtmir.mir.input: There's a touch (id = 20 ) missing. Releasing it.
qtmir.mir.input: There's a touch (id = 26 ) missing. Releasing it.
qtmir.mir.input: There's a touch (id = 33 ) missing. Releasing it.
qtmir.mir.input: Would move a touch that wasn't pressed before (id = 36 ). Making it press instead.
qtmir.mir.input: There's a touch (id = 35 ) missing. Releasing it.
terminate called after throwing an instance of 'boost:
what(): Only one touch up/down may be reported per event
"""
So mir is sending incomplete touch streams and qtmir tries to clean them up (filling in the gaps) before dispatching those events to apps. But then it doesn't do such a very good job at it and mir complains, throwing an exception