Bug #54728
closedTask #49162: Rewrite install tool
Fake cache entry is never removed from cache array in CacheManager
0%
Description
In
typo3/sysext/install/Classes/Service/SqlExpectedSchemaService.php the method getCachingFrameworkRequiredDatabaseSchema()creates a fake cache identifier and add it to the cache array in of the cacheManager. This leads to a cache entry like cf_extbase_object52c595582cc57. Later same method replaces this entry with the actual tables and pass this new cache settings to the setCacheConfigurations() of the CacheManager.
Unfortunately this doesn't remove the fake entry from the cache arrays ($caches and $cacheConfigurations) of the CacheManager. At the end TYPO3 holds a fake cache in memory which it tries to delete when typo3/sysext/extensionmanager/Classes/Utility/InstallUtility.php flushes the caches in method install().
In fact it tries to truncate the db table cf_extbase_object52c595582cc57 which doesn't exists. The error didn't raised an error because the mysqli query function just returns a "FALSE" which is not evaluated in typo3/sysext/core/Classes/Cache/Backend/Typo3DatabaseBackend.php within flush().
I came across the error while I create a ext:dbal like extension but using Doctrine. Doctrine throws an exception due the missing table.
I discussed this topic with Ernesto and we committed to introduce a removeCache() function into the CacheManager.
Updated by Gerrit Code Review almost 11 years ago
- Status changed from New to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/26627
Updated by Ernesto Baschny almost 11 years ago
Note that this solution is just a remedy fix until no better solution is found to circumnvent the need to create this extbase_object fake caching configuration to start with.
Updated by Christian Kuhn almost 10 years ago
- Status changed from Under Review to Rejected
Fix is to get this hack in install tool right, not to add an API method to CacheManager. The patch of this issue was rejected and this issue will be closed for now.