Bug #90089

Install tool breaks if it cannot unserialize extension configuration from LocalConfiguration.php

Added by Christoph Ascherl 13 days ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Install Tool
Target version:
-
Start date:
2020-01-12
Due date:
% Done:

0%

TYPO3 Version:
9
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

While trying to upgrade an existing installation from 8.7.30 to 9.5.13 with install tool, the process stopped in early state with the missleading message: "Something went wrong. Please use Check for broken extensions to see if a loaded extension breaks this part of the install tool and unload it."

When clicking on "Check for broken extensions" same issue occurs again.

Real error is a TypeError:
Argument 1 passed to TYPO3\CMS\Install\Controller\LayoutController::removeDotsFromArrayKeysRecursive() must be of the type array, boolean given, called in /kunden/412714_70794/rp-hosting/5139014/6139014/typo3cms/typo3_src-9.5.13/typo3/sysext/install/Classes/Controller/LayoutController.php on line 123

After reviewing source code and also adding some debug code I realize this issue is caused by extension settings of very old extensions I do not use anymore for years now. TYPO3 cannot unserialize still stored extension configuration in LocalConfiguration.php.

Please improve robustness in LayoutController.executeSilentLegacyExtConfExtensionConfigurationUpdateAction() and check for return value of unserialize method before passing it to another method. See line 123:
$newExtensionSettings = $this->removeDotsFromArrayKeysRecursive(unserialize($extensionSettings, ['allowed_classes' => false]));
Please provide a hint to the user what to do now.

My workaround:
In order to bypass this issue I had to remove entries for extensions beko_improved_login and tcdirectmail from array [EXT][extConf]in file LocalConfiguration.php. It also is a good time now to remove all remaining entries of extensions used years ago.

Also available in: Atom PDF