My understanding of the traces: the clients are failing because the server has crashed (or is otherwise unreachable). The problem seems to be that the failure happens in the context of a callback from the Android driver which presumably doesn't handle C++ exceptions well (probably not at all), causing an abort.
My guess about what we need to do is: catch the exception at the Mir/driver glue layer (in MirNativeWindow?) and tell the driver of the failure in the way that it expects it, by returning an error.
My understanding of the traces: the clients are failing because the server has crashed (or is otherwise unreachable). The problem seems to be that the failure happens in the context of a callback from the Android driver which presumably doesn't handle C++ exceptions well (probably not at all), causing an abort.
My guess about what we need to do is: catch the exception at the Mir/driver glue layer (in MirNativeWindow?) and tell the driver of the failure in the way that it expects it, by returning an error.