If the server dies, clients sometimes display "Caught exception at Mir/EGL driver boundary: ... std::exception::what: Failed to send message to server: Broken pipe"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Triaged
|
Medium
|
Unassigned | ||
mir (Ubuntu) |
Triaged
|
Medium
|
Unassigned |
Bug Description
If the server dies, clients sometimes display "Caught exception at Mir/EGL driver boundary: ... std::exception:
Test case: Start a bunch of demo clients all at once and then kill the server.
Expected: All clean client shutdowns (Signal 1 received. Good night.)
Observed:
Signal 1 received. Good night.
Signal 1 received. Good night.
Signal 1 received. Good night.
Signal 1 received. Good night.
Caught exception at Mir/EGL driver boundary: /home/dan/
Dynamic exception type: N5boost16except
std::exception:
32, "Broken pipe"
Signal 1 received. Good night.
Caught exception at Mir/EGL driver boundary: /home/dan/
Dynamic exception type: N5boost16except
std::exception:
32, "Broken pipe"
Signal 1 received. Good night.
Changed in mir: | |
status: | New → Triaged |
This happens because the server disconnection is detected while in a driver callback (e.g. a call from the driver to get the next buffer). I don't think we can avoid this, unless we don't log the boundary exceptions at all, or perphaps only ignore this particular exception?