Bug #93733

ext:form configuration scans Yaml files of deactivated extension during Upgrade wizard

Added by Sybille Peters 7 months ago. Updated 2 months ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Form Framework
Target version:
-
Start date:
2021-03-14
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
10
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:
Remote Sprint

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.

#1

Updated by Bjoern Jacob 2 months ago

  • Sprint Focus set to Remote Sprint
#2

Updated by Mathias Brodala 2 months 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.

#3

Updated by Sybille Peters 2 months 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.

Also available in: Atom PDF