Mir

Comment 4 for bug 1201436

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Problem analysis:

In mir_default_connect() we call connection->connect() which sets up a callback to connection::connected() (and then to the client callback).

Having done this the function can propagate an exception caught in mir_default_connect() - where a different connection object is created and returned to the client.

This means that there is nothing to stop the client continuing to a point where the above mentioned callback touches obsolete objects (e.g. the client "context") because the client code is syncing against the second connection object.

So, occasionally, the callback occurs after the test teardown starts - and chaos ensues.