Bug #90089

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

Added by Christoph Ascherl 10 months ago. Updated 8 months ago.

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

100%

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.

Associated revisions

Revision 97906c1c (diff)
Added by Georg Ringer 8 months ago

[BUGFIX] Check extension configuration before passing it

If the extension configuration couldn't be unserialized, it must not be
processed further.

Resolves: #90089
Releases: 9.5
Change-Id: I049c99298dc61a58326bc96794eca1d7c9d1ee04
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63233
Tested-by: TYPO3com <>
Tested-by: Markus Klein <>
Tested-by: Benni Mack <>
Reviewed-by: Markus Klein <>
Reviewed-by: Benni Mack <>

History

#1 Updated by Gerrit Code Review 8 months ago

  • Status changed from New to Under Review

Patch set 1 for branch 9.5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/63233

#2 Updated by Georg Ringer 8 months ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

#3 Updated by Benni Mack 8 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF