So, what seems to be happening on these drivers is that the hotplug- unplug event comes in while the driver is doing work in hwc::set() with an external list. Since the driver cannot post the list to the display anymore (as its physically disconnected), hwc::set() returns -1. At that point, mir throws up the compositor thread (which is trying to be shut down anyways at this point), and the exception is caught, which terminates the server. Given that the thread that gets the throw is shutting down anyways, we can ignore the exception.
** Branch linked: lp:~kdub/mir/fix-1474891 -- 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/1474891 Title: USC crash on multimonitor unplug [std::exception::what: error during hwc prepare()] Status in Mir: In Progress Status in Unity System Compositor: New Status in mir package in Ubuntu: New Bug description: I've a slightly customized USC built in Silo0. On top of that, a multimonitor-aware unity8 is running. http://people.canonical.com/~platform/citrain_dashboard/#?q=ubuntu/landing-000 On Android devices, Nexus 4 & 7, I occasionally get a crash on external monitor unplug. Here is the relevant log: ERROR: /build/mir-UAyS26/mir-0.13.4+15.04.20150709.2/src/platforms/android/server/real_hwc_wrapper.cpp(123): Throw in function virtual void mir::graphics::android::RealHwcWrapper::set(const std::array<hwc_display_contents_1*, 3u>&) const Dynamic exception type: N5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEEE std::exception::what: error during hwc prepare(). rc = ffffffff To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1474891/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp