Class Loader fails if entry in class cache is discarded
Steps to reproduce:
- rm -rf typo3temp/Cache/
- do a (e.g. FE-) request to populate caches
- rm typo3temp/Cache/Data/cache_classes/psr_log_loggerinterface
After that you get a fatal error for every request.
This is the case because autoload registry and aliases only populate this cache if the package states change.
Having a volatile cache for cache_classes (like memcache or APC) will sooner or later lead to a fatal error, which is not acceptable.
Idea: Introduce a two level cache for cache_classes that has persistent (file) second level cache and a potentially volatile and fast first level cache.
Updated by Alexander Opitz over 7 years ago
The described problem is for every Aliased class.
Non aliased classes can be loaded and the cache entry is regenerated, but if there are aliases for this class they don't get saved into the cache file, this information got lost and can lead to problems with "instanceof" code parts.
But the problem is very hard and this over 2000 class aliases costs us much time. :-(