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 Touch seeded packages, which is subscribed to mir in Ubuntu. https://bugs.launchpad.net/bugs/1358191 Title: [regression] Clients are crashing (SIGSEGV) on mir_connect() Status in Mir: In Progress Status in Mir 0.6 series: Triaged Status in “mir” package in Ubuntu: Triaged Bug description: On image 195 on mako, phablet@ubuntu-phablet:~$ mirping Segmentation fault (core dumped) phablet@ubuntu-phablet:~$ mirscreencast -n1 Segmentation fault (core dumped) To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1358191/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp