The core issue seems to be that in this scenario the platform shared
library is unloaded before the configuration object is being destroyed.
The configuration object is holding a weak pointer to a shared pointer
object (shared_ptr for the client platform factory) that was
instantiated inside the platform library, and when the library is
unloaded, type information and vtable for that shared pointer type
vanishes too. When we try to destroy the weak_ptr we end up accessing
memory that is invalid.

I have proposed an MP that spikes a fix for this:
https://code.launchpad.net/~afrantzis/mir/fix-1358191-connect-segv-
spike/+merge/232108 by keeping the library loaded for as long as needed.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1358191

Title:
  [regression] Clients are crashing (SIGSEGV) on mir_connect()

To manage notifications about this bug go to:
https://bugs.launchpad.net/mir/+bug/1358191/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to