[regression] Nested server segfaults or rapidly logs exceptions when a fullscreen client starts [in mir_presentation_chain_set_dropping_mode ... std::exception::what: Operation not permitted]
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Critical
|
Kevin DuBois | ||
0.26 |
Fix Released
|
Critical
|
Kevin DuBois | ||
mir (Ubuntu) |
Fix Released
|
Critical
|
Unassigned |
Bug Description
Nested server segfaults when a fullscreen client starts
Using Mir 0.26.0 (zesty release):
The client dies:
[2017-02-03 15:05:44.315444] <ERROR> Mesa/NativeSurface: Caught exception at Mir/EGL driver boundary (in advance_buffer): /build/
Dynamic exception type: boost::
std::exception:
Because the server died:
Segmentation fault (core dumped)
(gdb) bt
#0 __GI___
#1 0x00007fcceb7b4003 in ?? ()
from /usr/lib/
#2 0x00007fcceb7d1961 in mir_presentatio
from /usr/lib/
#3 0x00007fccec0e3a7a in ?? ()
from /usr/lib/
#4 0x00007fccec09fd2d in ?? ()
from /usr/lib/
#5 0x00007fccec09f018 in ?? ()
from /usr/lib/
#6 0x00007fccec0e2c79 in ?? ()
from /usr/lib/
#7 0x00007fccebcfab2f in ?? () from /usr/lib/
#8 0x00007fcce95326ca in start_thread (arg=0x7fccde2b
at pthread_
#9 0x00007fccec4710ff in clone ()
at ../sysdeps/
However in development builds the server does not die and just floods the log instead:
[2017-02-03 16:52:44.382460] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio
std::exception:
[2017-02-03 16:52:44.399142] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio
std::exception:
[2017-02-03 16:52:44.415823] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio
std::exception:
[2017-02-03 16:52:44.432504] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio
std::exception:
*** WORKAROUND ***
Start your nested server with --nested-
Which works on the 0.26.0 release, but not on anything newer because you'll then hit the more recent regression bug 1661521.
Related branches
- Cemil Azizoglu (community): Approve
- Mir CI Bot: Approve (continuous-integration)
-
Diff: 40 lines (+18/-2)2 files modifiedsrc/client/presentation_chain.cpp (+4/-2)
tests/unit-tests/client/test_presentation_chain.cpp (+14/-0)
- Michał Sawicz: Disapprove
-
Diff: 13 lines (+6/-0)1 file modifieddebian/changelog (+6/-0)
Changed in mir: | |
importance: | Undecided → Critical |
milestone: | none → 1.0.0 |
summary: |
- Fullscreen clients of nested servers crash on start-up [<ERROR> - Mesa/NativeSurface: Caught exception at Mir/EGL driver boundary (in - advance_buffer) ... std::exception::what: broken_promise] + Nested server segfaults when a fullscreen client starts |
tags: | added: nested |
description: | updated |
description: | updated |
description: | updated |
summary: |
- Nested server segfaults or rapidly logs exceptions in - mir_presentation_chain_set_dropping_mode() when a fullscreen client - starts + Nested server segfaults or rapidly logs exceptions when a fullscreen + client starts [in mir_presentation_chain_set_dropping_mode ... + std::exception::what: Operation not permitted] |
Changed in mir (Ubuntu): | |
importance: | Undecided → Critical |
summary: |
- Nested server segfaults or rapidly logs exceptions when a fullscreen - client starts [in mir_presentation_chain_set_dropping_mode ... - std::exception::what: Operation not permitted] + [regression] Nested server segfaults or rapidly logs exceptions when a + fullscreen client starts [in mir_presentation_chain_set_dropping_mode + ... std::exception::what: Operation not permitted] |
tags: | added: regression |
Changed in mir: | |
assignee: | nobody → Kevin DuBois (kdub) |
Changed in mir: | |
status: | Fix Committed → Fix Released |
The above crash happens with the zesty release binaries, but when I use lp:mir/0.26 I get this instead of a crash:
[2017-02-03 15:31:05.336685] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio n_chain_ set_dropping_ mode): Dynamic exception type: std::system_error :what: Operation not permitted
std::exception:
[2017-02-03 15:31:05.337362] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio n_chain_ set_dropping_ mode): Dynamic exception type: std::system_error :what: Operation not permitted
std::exception:
[2017-02-03 15:31:05.337433] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio n_chain_ set_dropping_ mode): Dynamic exception type: std::system_error :what: Operation not permitted
std::exception:
[2017-02-03 15:31:05.338185] <ERROR> mirclient: Caught exception at client library boundary (in mir_presentatio n_chain_ set_dropping_ mode): Dynamic exception type: std::system_error :what: Operation not permitted
std::exception:
.....