Hellos whilest investigating a memleak I noticed that krunner threadweaves its runners. those runners sometimes use kservice to do queries (e.g. servicerunner). for servicerunner specifically this seems to run into fairly unprotected code paths (I know appstreamrunner will run into the same problem)
runner -> KServiceTypeTrader::self()->query -> defaultOffers() -> KSycoca::self()->ensureCacheValid() -> potentially starts a qelapsedtimer and closes the database while another thread might be poking around in it? if someone has time I think that could use with some looking into :/ HS