← Back to team overview

touch-packages team mailing list archive

[Bug 1528384] Re: unity-system-compositor crashed with std::runtime_error in mir::compositor::CompositingFunctor::wait_until_started() from usc::MirScreen::set_screen_power_mode (mir_power_mode_on)

 

Digging into the code (without being able to reproduce) the likeliest
cause seems to be incorrect error handling in
mir::compositor::CompositingFunctor::operator()().

In Mir 0.18 this function can plausibly terminate via an exception
before setting the promise (on line 116) - it has a catch block, but
this does not set an exception on the promise. I can't identify all the
threads from the  error tracker, but I don't see this one, so I suspect
this is what has happened.

In Mir 0.19 this function has been modified to set the exception on the
promise, which should change the behaviour. But as the future not read
(just waited on) the behaviour is still suspect. The current failure
detected in wait_until_started() should go and the problem will be
ignored by the Compositor. However, as
mir::terminate_with_current_exception() is called the server should
close down and we'll end up with a different failure mode. Maybe that
will give us a little more information on the underlying error
condition?

In my travels I also noticed some hard-to-validate logic in
MultiThreadedCompositor::start()/stop() - which, while it does
successfully use atomic for synchronization, has the questionable
behaviour of simply ignoring both start() and stop() requests while in
state CompositorState::starting or CompositorState::stopping.

Likewise in usc::MirScreen the locking conventions around "_l" functions
are not followed consistently.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to mir in Ubuntu.
https://bugs.launchpad.net/bugs/1528384

Title:
  unity-system-compositor crashed with std::runtime_error in
  mir::compositor::CompositingFunctor::wait_until_started() from
  usc::MirScreen::set_screen_power_mode (mir_power_mode_on)

Status in Canonical System Image:
  Confirmed
Status in Mir:
  New
Status in Unity System Compositor:
  New
Status in mir package in Ubuntu:
  Confirmed
Status in unity-system-compositor package in Ubuntu:
  Confirmed

Bug description:
  Top crash over past week (ww02) on errors.u.c for rc-proposed
  channels.

  Started with u-s-c 0.2.0+15.04.20151216.1-0ubuntu1

  The Ubuntu Error Tracker has been receiving reports about a problem
  regarding unity-system-compositor.  This problem was most recently
  seen with version 0.2.0+15.04.20151216.1-0ubuntu1, the problem page at
  https://errors.ubuntu.com/problem/7bcfcf599b35b264c0be45d5290ad9ae3c50adcf
  contains more details.

To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1528384/+subscriptions


References