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.
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.