Clients are crashing with a fatal exception in MirSocketRpcChannel::send_message()

Bug #1347053 reported by Michał Sawicz
26
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alexandros Frantzis
0.5
Won't Fix
High
Unassigned
0.6
Fix Released
High
Alexandros Frantzis
mir (Ubuntu)
Fix Released
High
Unassigned
unity-system-compositor (Ubuntu)
Invalid
Medium
Unassigned

Bug Description

Starting unity8 when u-s-c is running results in them fighting over the hardware (not for the socket due to the default XDG_RUNTIME_DIR) and u-s-c crashing.

ProblemType: Crash
DistroRelease: Ubuntu 14.10
Package: unity-system-compositor 0.0.4+14.10.20140718-0ubuntu1
Uname: Linux 3.4.0-5-mako armv7l
ApportVersion: 2.14.4-0ubuntu2
Architecture: armhf
Date: Tue Jul 22 16:26:40 2014
ExecutablePath: /usr/bin/unity-system-compositor-spinner
GraphicsCard:

InstallationDate: Installed on 2014-07-22 (0 days ago)
InstallationMedia: Ubuntu Utopic Unicorn (development branch) - armhf (20140722-095505)
LocalLibraries: /android/system/lib/liblog.so /android/system/lib/libhardware.so /android/system/lib/libstdc++.so /android/system/lib/libcutils.so /android/system/lib/libcorkscrew.so /android/system/lib/libsync.so /android/system/lib/libc.so /android/system/lib/hw/gralloc.msm8960.so /android/system/lib/libm.so /android/system/lib/libGLESv1_CM.so /android/system/lib/libmemalloc.so /android/system/lib/egl/libGLESv1_CM_adreno.so /android/system/lib/libz.so /android/system/lib/libgccdemangle.so /android/system/lib/libui.so /android/system/lib/libadreno_utils.so /android/system/lib/egl/libEGL_adreno.so /android/system/lib/libstlport.so /android/system/lib/egl/eglsubAndroid.so /android/system/lib/libutils.so /android/system/lib/libgsl.so /android/system/lib/libdsyscalls.so /android/system/lib/egl/libGLESv2_adreno.so /android/system/lib/libsc-a3xx.so /android/system/lib/libGLESv2.so /android/system/lib/libGLES_trace.so /android/system/lib/libEGL.so /android/system/lib/libqdutils.so
ProcCmdline: /usr/bin/unity-system-compositor-spinner
ProcEnviron:

Signal: 6
SourcePackage: unity-system-compositor
StacktraceTop:
 __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
 ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
Title: unity-system-compositor-spinner crashed with SIGABRT in __gnu_cxx::__verbose_terminate_handler()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

version.libdrm: libdrm2 2.4.54-1
version.lightdm: lightdm 1.11.4-0ubuntu1
version.mesa: libegl1-mesa-dev N/A

Related branches

Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 __gnu_cxx::__verbose_terminate_handler () at ../../../../src/libstdc++-v3/libsupc++/vterminate.cc:95
 __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:47
 std::terminate () at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:57
 __cxxabiv1::__cxa_throw (obj=0x17d3848, tinfo=0x1, dest=0xb6dda245 <boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >::~clone_impl()>) at ../../../../src/libstdc++-v3/libsupc++/eh_throw.cc:87
 boost::throw_exception<boost::exception_detail::error_info_injector<std::runtime_error> > (e=...) at /usr/include/boost/throw_exception.hpp:70

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in unity-system-compositor (Ubuntu):
importance: Undecided → Medium
tags: removed: need-armhf-retrace
Michał Sawicz (saviq)
information type: Private → Public
summary: - unity-system-compositor-spinner crashed with SIGABRT in
- __gnu_cxx::__verbose_terminate_handler()
+ unity-system-compositor-spinner crashed with a fatal exception in
+ MirSocketRpcChannel::send_message()
Changed in mir:
importance: Undecided → Medium
milestone: none → 0.6.0
status: New → Triaged
Changed in mir (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Changed in unity-system-compositor (Ubuntu):
status: New → Invalid
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: unity-system-compositor-spinner crashed with a fatal exception in MirSocketRpcChannel::send_message()

Setting to Medium as I think this can only happen as the result of a developer mistake, starting multiple top-level servers. Not likely to affect users.

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

Sorry, my mistake. It's clients that are crashing, not the server. That's more severe. See also duplicate bug 1347901 where ubuntu-system-settings is crashing in the same way.

summary: - unity-system-compositor-spinner crashed with a fatal exception in
+ Clients are crashing with a fatal exception in
MirSocketRpcChannel::send_message()
Changed in mir:
importance: Medium → High
Changed in mir (Ubuntu):
importance: Medium → High
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

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.

Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Chris Gagnon (chris.gagnon) wrote :
Revision history for this message
Chris Gagnon (chris.gagnon) wrote :

The whole UI is hung when this happens.

tags: added: qa-daily-testing rtm14
Revision history for this message
Chris Gagnon (chris.gagnon) wrote :

It looks like this broken unit test is the same bug https://bugs.launchpad.net/mir/+bug/1164838

tags: added: qasoak
Changed in mir:
milestone: 0.6.0 → 0.7.0
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

As I mentioned before, the failures shown in both the errors.u.c reports (and which are really confusing, I don't really trust the backtraces to be correct there, they don't make much sense) and the original backtrace, just indicate that that the server has died and the clients fail to communicate with it.

So I take this bug as a request to make the failures more graceful on the client side (as much as we can).

Changed in mir:
assignee: nobody → Alexandros Frantzis (afrantzis)
status: Triaged → In Progress
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir/devel at revision None, scheduled for release in mir, milestone Unknown

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

Warning: Do not backport the fix for this bug to 0.6 until the regression bug 1353867 that it causes is also fixed.

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

Oh dear.

Fix backported to lp:mir/0.6 at revision 1826.

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

mir (0.6.0+14.10.20140811-0ubuntu1) utopic; urgency=medium

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in mir:
milestone: 0.7.0 → none
status: Fix Committed → Fix Released
Changed in mir:
milestone: none → 0.7.0
status: Fix Released → Fix Committed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Sorry for the confusion. Most of the 0.7.0 series got merged into 0.6.0 at a late stage. I've verified everything in 0.6.0 is also fixed in 0.7.0. So although the branched fixes in 0.7.0 have not been "released" yet, the equivalent fixes in 0.6.0 have. No need to mention them in 0.7 any more.

Changed in mir:
milestone: 0.7.0 → none
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.