> Is there any more realistic use case that will trigger it?
Yes. The problem occurs even if libmircommon is indirectly loaded/unloaded/reloaded. For example the crash happens with:
./load_twice libclutter-glx-1.0.so.0
because clutter->gdk->mirclient->mircommon. We can't control how third-party programs load and unload their libraries (e.g. plugin systems). This is important because it causes crashes in mir/protobuf code from code that is seemingly unrelated to mir itself.
> Is there any more realistic use case that will trigger it?
Yes. The problem occurs even if libmircommon is indirectly loaded/ unloaded/ reloaded. For example the crash happens with:
./load_twice libclutter- glx-1.0. so.0
because clutter- >gdk->mirclient ->mircommon. We can't control how third-party programs load and unload their libraries (e.g. plugin systems). This is important because it causes crashes in mir/protobuf code from code that is seemingly unrelated to mir itself.