Fatal exceptions raised in a compositing thread have no usable stack trace
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Critical
|
Daniel van Vugt | ||
mir (Ubuntu) |
Fix Released
|
Critical
|
Unassigned |
Bug Description
Fatal exceptions raised in the Mir code have no usable stack trace.
For example, if I insert this in the compositor code:
throw std::runtime_
And then run it:
terminate called after throwing an instance of 'std::runtime_
what(): He's dead, Jim
Aborted (core dumped)
The resulting core file has no trace of where the error occurred:
(gdb) bt
#0 0x00007f1d7d720f77 in __GI_raise (sig=sig@entry=6)
at ../nptl/
#1 0x00007f1d7d7245e8 in __GI_abort () at abort.c:90
#2 0x00007f1d7dd276e5 in __gnu_cxx:
from /usr/lib/
#3 0x00007f1d7dd25856 in ?? () from /usr/lib/
#4 0x00007f1d7dd25883 in std::terminate() ()
from /usr/lib/
#5 0x00007f1d7dd78805 in ?? () from /usr/lib/
#6 0x00007f1d7dfd2f6e in start_thread (arg=0x7f1d6c63
at pthread_
#7 0x00007f1d7d7e3ecd in clone ()
at ../sysdeps/
Related branches
- Daniel van Vugt: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
- Kevin DuBois (community): Approve
- Alexandros Frantzis (community): Approve
- Alan Griffiths: Approve
-
Diff: 11 lines (+1/-1)1 file modifiedsrc/server/compositor/multi_threaded_compositor.cpp (+1/-1)
- PS Jenkins bot (community): Approve (continuous-integration)
- Alan Griffiths: Needs Fixing
- Kevin DuBois (community): Needs Information
- Mir development team: Pending requested
-
Diff: 113 lines (+93/-0)3 files modifiedtests/CMakeLists.txt (+1/-0)
tests/fatal/CMakeLists.txt (+8/-0)
tests/fatal/crashing_server.cpp (+84/-0)
Changed in mir: | |
status: | New → Triaged |
Changed in mir: | |
status: | Fix Committed → Fix Released |
This is becoming painful. Real world reports don't get any stack trace.