[Interest] can the QRegExpEngine cache acces objects belonging to an unloaded library during global destruction?

René J.V. Bertin rjvbertin at gmail.com
Mon Jan 29 15:49:06 CET 2018


I've already touched on this in a previous message. I'm seeing an issue (crash or hang on exit) during the destruction of the QRegExpEngine globalEngineCache. 

This happens on Mac when I have used a class (KFileWidget) via a platform theme plugin; KFileWidget is provided by a library (KF5's KIOWidgets) which is linked only to the platform plugin. Just creating a KFileWidget instance (and deleting it at the appropriate location) is enough. 

- linking the application to KIOWidgets fixes the issue but isn't a desirable solution (defeats the purpose of using a platform theme plugin to provide a more capable and cross-platform file dialog).
- inserting the KIOWidgets library via DYLD_INSERT_LIBRARY also fixes the issue

Interesting tidbits: in all these cases the KIOWidgets library is unloaded before globalEngineCache is taken down.
This surprises me in itself: I was under the impression that plugins are no longer unloaded explicitly (so logically the libraries they use shouldn't be either?)

On Linux, the same principle is used by the plasma integration plugin, and there the KIOWidgets library is unloaded AFTER the cache has been destroyed.

I'm not having much luck pinpointing what in or used by KFileWidget could possibly be the culprit here. Suggestions would be appreciated!


More information about the Interest mailing list