I've not been able to reproduce yet[1], but looking at the code I can't see anything that prevents a buffer stream being owned by the compositor (for composition) after the corresponding Surface and Session have been closed. If that then attempts to "complete" a buffer swap then we would see the above result.
If I'm right then adding code to ~BasicSurface() to prevent the surface_buffer_stream completing pending swaps is all that is needed. [1] I have to leave myself something to do tomorrow. -- 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/1376324 Title: /usr/sbin/unity-system-compositor:*** Error in `unity-system- compositor': free(): invalid pointer: ADDR *** Status in Mir: In Progress Status in Unity System Compositor: New Status in “mir” package in Ubuntu: New Status in “unity-system-compositor” package in Ubuntu: New Bug description: The Ubuntu Error Tracker has been receiving reports about a problem regarding unity-system-compositor. This problem was most recently seen with version 0.0.5+14.10.20140917-0ubuntu1, the problem page at https://errors.ubuntu.com/problem/bfb855ebc60f251bf495a2ffb24f2924c50bdbf8 contains more details. To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1376324/+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