Mir servers crash if I press the side mouse button (thumb)

Bug #1544878 reported by Daniel van Vugt
36
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Andreas Pokorny
0.19
Won't Fix
High
Unassigned
0.20
Fix Released
High
Andreas Pokorny
mir (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Mir servers crash if I press the side mouse button (thumb).

There are two of them on the side of my Intellimouse Explorer 3.0. The kernel calls them BTN_SIDE and BTN_EXTRA. And X calls them buttons 8 and 9.

When the crash happens I see in unity8.log:

[1455268365.782990] <ERROR> MirSurfaceAPI: Caught exception at client library boundary (in mir_surface_release): /build/mir-wMQ7xO/mir-0.19.2+16.04.20160210/src/client/rpc/stream_socket_transport.cpp(168): Throw in function virtual void mir::client::rpc::StreamSocketTransport::send_message(const std::vector<unsigned char>&, const std::vector<mir::Fd>&)
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<mir::socket_disconnected_error> >
std::exception::what: Failed to send message to server: Broken pipe
32, "Broken pipe"
*** Error in `unity8': free(): invalid size: 0x00007fcb4c03fe90 ***

Also happens with the Mir demo servers; they segfault but without a usable stack trace due to exception handling.

Tags: input

Related branches

Changed in unity8 (Ubuntu):
importance: Undecided → High
summary: - Unity8 crashes if I press the side mouse button (thumb)
+ Mir servers crash if I press the side mouse button (thumb)
affects: unity8 (Ubuntu) → mir (Ubuntu)
tags: added: input
description: updated
Changed in mir:
importance: Undecided → High
milestone: none → 0.20.0
Revision history for this message
Michał Sawicz (saviq) wrote :

This seems similar to bug #1542305, even though that one has different log/.crash results.

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

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

Changed in mir (Ubuntu):
status: New → Confirmed
Changed in mir:
milestone: 0.20.0 → 0.21.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I'm on the fence about the importance of this bug so will err on the side of the worst case. It shouldn't be as easy as pressing one button (which some people will regularly hit by accident) to kill the server.

Changed in mir:
status: New → Confirmed
importance: High → Critical
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

libinput treats the ranges BTN_MISC to BTN_GEAR_UP and BTN_DPAS to BTN_TRIGGER_HAPPY40 as pointer buttons since it does not support joystick/gamepads yet. So we get a pointer button down event... so there are probably two places to fix. libinput should grow to support joysticks, and mir should support more mouse buttons. And convert all the others as key events until we support joysticks/gamepads too.

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

And yes the problem is the conversion routine only deals with BTN_LEFT _RIGHT, _MIDDLE _BACK _FORWARD .. but not BTN_SIDE or BTN_EXTRA and BTN_TASK which are all in the same range of densely defined constants.

Changed in mir (Ubuntu):
assignee: nobody → Andreas Pokorny (andreas-pokorny)
Changed in mir (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Dropped importance. Not everyone feels this is a release blocker.

Changed in mir:
assignee: nobody → Andreas Pokorny (andreas-pokorny)
status: Confirmed → In Progress
importance: Critical → High
assignee: Andreas Pokorny (andreas-pokorny) → nobody
Changed in mir (Ubuntu):
status: In Progress → Triaged
Changed in mir:
assignee: nobody → Andreas Pokorny (andreas-pokorny)
Changed in mir (Ubuntu):
assignee: Andreas Pokorny (andreas-pokorny) → nobody
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.21.0

Changed in mir:
status: In Progress → Fix Committed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

On second thoughts, the prerequisite commit r3317 that the fix r3324 depends on is huge. It can wait till Mir 0.21.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

The fix is definitely not in lp:mir/0.20 yet. And perhaps should not be due to the large prereq (see comment #8)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Now it is...

Fix committed to lp:mir/0.20 at revision 3328, scheduled for release in Mir milestone 0.20.1

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

This bug was fixed in the package mir - 0.20.1+16.04.20160225.1-0ubuntu1

---------------
mir (0.20.1+16.04.20160225.1-0ubuntu1) xenial; urgency=medium

  [ Kevin DuBois ]
  * New upstream release 0.20.1 (https://launchpad.net/mir/+milestone/0.20.1)
    - ABI summary:
      . No ABI changes in any libraries. Bugfix release only.
    - Bugs fixed:
      . On arale; top panel drop down menu is semi-transparent and items are
        unreadable. Accommodate system image device name change for arale
        device that broke android quirk detection (LP: #1549226)
      . Crash when side mouse buttons are pressed (LP: #1544878)

  [ CI Train Bot ]
  * No-change rebuild.

 -- Kevin DuBois <email address hidden> Thu, 25 Feb 2016 12:03:41 +0000

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
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.