Bug #93733
closedext:form configuration scans Yaml files of deactivated extension during Upgrade wizard
0%
Description
When the Upgrade wizards card for 10 (Create tables etc.) is loaded, it looks like some part of form parses or tries to parse YAML files of extensions which are not even activated.
IMHO, any part of the core should not parse configuration files of deactivated extensions. And it should not try to parse unrelated configuration files, especially not in any part of the Install Tool.
I find this problematic, because the Upgrade wizard (and Install Tool in general) should be a very robust part of the core which should not be affected by any extensions, especially not by deactivated extensions.
If there is not any problem, this should not affect an installation but if there is some problem this could make it more difficult to get the basic TYPO3 core up and running again.
Setup / Reproduce¶
- TYPO3 9.5.24, non Composer
- deactivate all third party extensions
- replace source code for 10
- load Upgrade wizards
- with the Debugger, put a breakpoint in typo3/sysext/form/Classes/Mvc/Configuration/YamlSource.php Line 72
\YamlSource->loadFromFilePath or change the Yaml file of an uninstalled extension so that the Web user has no access.
Next TYPO3\\CMS\\Form\\Mvc\\Configuration\\Exception\\ParseErrorException: An error occurred while parsing file \"EXT:unioltemplate/Configuration/Yaml/BaseSetup.yaml\": YAML File \"EXT:unioltemplate/Configuration/Yaml/BaseSetup.yaml\" could not be loaded in /var/www/mysite/htdocs//typo3/sysext/form/Classes/Mvc/Configuration/YamlSource.php:141 Stack trace: #0 /var/www/mysite/htdocs//typo3/sysext/form/Classes/Mvc/Configuration/YamlSource.php(72): TYPO3\\CMS\\Form\\Mvc\\Configuration\\YamlSource->loadFromFilePath('EXT:unioltempla...') #1 /var/www/mysite/htdocs//typo3/sysext/form/Classes/Mvc/Configuration/ConfigurationManager.php(113): TYPO3\\CMS\\Form\\Mvc\\Configuration\\YamlSource->load(Array) #2 /var/www/mysite/htdocs//typo3/sysext/form/Classes/Mvc/Configuration/ConfigurationManager.php(66): TYPO3\\CMS\\Form\\Mvc\\Configuration\\ConfigurationManager->getConfigurationFromYamlFile('form') #3 /var/www/mysite/htdocs//typo3/sysext/form/Classes/Mvc/Persistence/FormPersistenceManager.php(127): TYPO3\\CMS\\Form\\Mvc\\Configuration\\ConfigurationManager->getConfiguration('YamlSettings', 'form') #4 /var/www/mysite/htdocs//typo3/sysext/extbase/Classes/Object/Container/Container.php(252): TYPO3\\CMS\\Form\\Mvc\\Persistence\\FormPersistenceManager->initializeObject() #5 /var/www/mysite/htdocs//typo3/sysext/extbase/Classes/Object/Container/Container.php(169): TYPO3\\CMS\\Extbase\\Object\\Container\\Container->initializeObject(Object(TYPO3\\CMS\\Form\\Mvc\\Persistence\\FormPersistenceManager)) #6 /var/www/mysite/htdocs//typo3/sysext/extbase/Classes/Object/Container/Container.php(111): TYPO3\\CMS\\Extbase\\Object\\Container\\Container->getInstanceInternal('TYPO3\\\\CMS\\\\Form\\\\...') #7 /var/www/mysite/htdocs//typo3/sysext/extbase/Classes/Object/ObjectManager.php(114): TYPO3\\CMS\\Extbase\\Object\\Container\\Container->getInstance('TYPO3\\\\CMS\\\\Form\\\\...', Array) #8 /var/www/mysite/htdocs//typo3/sysext/form/Classes/Hooks/FormFileExtensionUpdate.php(138): TYPO3\\CMS\\Extbase\\Object\\ObjectManager->get('TYPO3\\\\CMS\\\\Form\\\\...') #9 /var/www/mysite/htdocs//typo3/sysext/install/Classes/Service/UpgradeWizardsService.php(293): TYPO3\\CMS\\Form\\Hooks\\FormFileExtensionUpdate->updateNecessary() #10 /var/www/mysite/htdocs//typo3/sysext/install/Classes/Service/UpgradeWizardsService.php(271): TYPO3\\CMS\\Install\\Service\\UpgradeWizardsService->getWizardInformationByIdentifier('formFileExtensi...') #11 /var/www/mysite/htdocs//typo3/sysext/install/Classes/Controller/UpgradeController.php(1104): TYPO3\\CMS\\Install\\Service\\UpgradeWizardsService->getUpgradeWizardsList() #12 /var/www/mysite/htdocs//typo3/sysext/install/Classes/Middleware/Maintenance.php(246): TYPO3\\CMS\\Install\\Controller\\UpgradeController->upgradeWizardsListAction(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest)) #13 /var/www/mysite/htdocs//typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(121): TYPO3\\CMS\\Install\\Middleware\\Maintenance->process(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest), Object(class@anonymous)) #14 /var/www/mysite/htdocs//typo3/sysext/core/Classes/Middleware/NormalizedParamsAttribute.php(45): class@anonymous->handle(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest)) #15 /var/www/mysite/htdocs//typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(172): TYPO3\\CMS\\Core\\Middleware\ ormalizedParamsAttribute->process(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest), Object(class@anonymous)) #16 /var/www/mysite/htdocs//typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php(78): class@anonymous->handle(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest)) #17 /var/www/mysite/htdocs//typo3/sysext/core/Classes/Http/AbstractApplication.php(85): TYPO3\\CMS\\Core\\Http\\MiddlewareDispatcher->handle(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest)) #18 /var/www/mysite/htdocs//typo3/sysext/install/Classes/Http/Application.php(52): TYPO3\\CMS\\Core\\Http\\AbstractApplication->handle(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest)) #19 /var/www/mysite/htdocs//typo3/sysext/core/Classes/Http/AbstractApplication.php(97): TYPO3\\CMS\\Install\\Http\\Application->handle(Object(TYPO3\\CMS\\Core\\Http\\ServerRequest)) #20 /var/www/mysite/htdocs//typo3/install.php(105): TYPO3\\CMS\\Core\\Http\\AbstractApplication->run() #21 /var/www/mysite/htdocs//typo3/install.php(106): {closure}() #22 {main}"}
While the wizard was running, I updated some extension and the permissions were not set correctly.
Updated by Mathias Brodala over 3 years ago
- Status changed from New to Needs Feedback
Can you add more details? The wizard uses the form manager which in in turn uses your form setup. If you specify extension directories as valid sources for form definitions, then these will be respected.
So if you disable extensions, you should actually drop them and also remove them from your form setup. Anything else doesn't make much sense.
Updated by Sybille Peters over 3 years ago
- Status changed from Needs Feedback to Closed
Yes, you are right. I checked: the configuration from the extension is directly loaded from the TypoScript, so this will also be active if the extension is deactivated.
I am sorry. This should have been changed. Will close.