Bug #77203

Core Update fails if configuration presets --> Debug is set to "Debug [Active]"

Added by Thomas Candrian over 2 years ago. Updated about 2 months ago.

Status:
Closed
Priority:
Could have
Assignee:
-
Category:
Install Tool
Target version:
-
Start date:
2016-07-21
Due date:
% Done:

100%

TYPO3 Version:
7
PHP Version:
7.0
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Doing so results in almost instantly display of "General error" if you click onto "Check for core update". sending the AJAX request by hand results in following error:

Uncaught TYPO3 Exception
#1289386765: Could not analyse class: "TYPO3\CMS\Install\Controller\Action\Ajax\CoreUpdateUpdateVersionMatrix" maybe not loaded or no autoloader? PHP Warning: Declaration of TYPO3\CMS\Install\Controller\Action\Ajax\AbstractCoreUpdate::injectView(TYPO3\CMS\Install\View\JsonView $view) should be compatible with TYPO3\CMS\Install\Controller\Action\AbstractAction::injectView(TYPO3\CMS\Install\View\FailsafeView $view) in /var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Classes/Controller/Action/Ajax/AbstractCoreUpdate.php line 21 (More information)

TYPO3\CMS\Extbase\Object\Container\Exception\UnknownObjectException thrown in file
/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php in line 37.

11 TYPO3\CMS\Extbase\Object\Container\ClassInfoFactory::buildClassInfoFromClassName("TYPO3\CMS\Install\Controller\Action\Ajax\CoreUpdateUpdateVersionMatrix")

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/extbase/Classes/Object/Container/Container.php:

00347: $classInfo = $this->getClassInfoCache()->get($classNameHash);
00348: if (!$classInfo instanceof \TYPO3\CMS\Extbase\Object\Container\ClassInfo) {

00349: $classInfo = $this->getClassInfoFactory()->buildClassInfoFromClassName($className);

00350: $this->getClassInfoCache()->set($classNameHash, $classInfo);
00351: }

10 TYPO3\CMS\Extbase\Object\Container\Container::getClassInfo("TYPO3\CMS\Install\Controller\Action\Ajax\CoreUpdateUpdateVersionMatrix")

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/extbase/Classes/Object/Container/Container.php:

00171: return $this->singletonInstances[$className];
00172: }

00173: $classInfo = $this->getClassInfo($className);

00174: $classIsSingleton = $classInfo->getIsSingleton();
00175: if (!$classIsSingleton) {

9 TYPO3\CMS\Extbase\Object\Container\Container::getInstanceInternal("TYPO3\CMS\Install\Controller\Action\Ajax\CoreUpdateUpdateVersionMatrix", array)

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/extbase/Classes/Object/Container/Container.php:

00124: {
00125: $this->prototypeObjectsWhichAreCurrentlyInstanciated = array();

00126: return $this->getInstanceInternal($className, $givenConstructorArguments);

00127: }
00128:

8 TYPO3\CMS\Extbase\Object\Container\Container::getInstance("TYPO3\CMS\Install\Controller\Action\Ajax\CoreUpdateUpdateVersionMatrix", array)

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/extbase/Classes/Object/ObjectManager.php:

00097: $instance = call_user_func_array(array(\TYPO3\CMS\Core\Utility\GeneralUtility::class, 'makeInstance'), $arguments);
00098: } else {

00099: $instance = $this->objectContainer->getInstance($objectName, $arguments);

00100: }
00101: return $instance;

7 TYPO3\CMS\Extbase\Object\ObjectManager::get("TYPO3\CMS\Install\Controller\Action\Ajax\CoreUpdateUpdateVersionMatrix")

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Classes/Controller/AjaxController.php:

00143: $actionClass = ucfirst($action);
00144: /** @var \TYPO3\CMS\Install\Controller\Action\ActionInterface $toolAction */

00145: $toolAction = $this->objectManager->get('TYPO3\\CMS\\Install\\Controller\\Action\\Ajax\\' . $actionClass);

00146: if (!($toolAction instanceof Action\ActionInterface)) {
00147: throw new Exception(

6 TYPO3\CMS\Install\Controller\AjaxController::dispatchAuthenticationActions()

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Classes/Controller/AjaxController.php:

00062: $this->checkSessionLifetime();
00063: $this->checkLogin();

00064: $this->dispatchAuthenticationActions();

00065: }
00066:

5 TYPO3\CMS\Install\Controller\AjaxController::execute()

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Classes/Http/RequestHandler.php:

00062: $controllerClassName = \TYPO3\CMS\Install\Controller\StepController::class;
00063: }

00064: GeneralUtility::makeInstance($controllerClassName)->execute();

00065: }
00066:

4 TYPO3\CMS\Install\Http\RequestHandler::handleRequest(TYPO3\CMS\Core\Http\ServerRequest)

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/core/Classes/Core/Bootstrap.php:

00300:
00301: // Execute the command which returns a Response object or NULL

00302: $this->response = $requestHandler->handleRequest($request);

00303: return $this;
00304: }

3 TYPO3\CMS\Core\Core\Bootstrap::handleRequest(TYPO3\CMS\Core\Http\ServerRequest)

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Classes/Http/Application.php:

00072: public function run(callable $execute = null)
00073: {

00074: $this->bootstrap->handleRequest(\TYPO3\CMS\Core\Http\ServerRequestFactory::fromGlobals());

00075:
00076: if ($execute !== null) {

2 TYPO3\CMS\Install\Http\Application::run()

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Start/Install.php:

00106: call_user_func(function () {
00107: $classLoader = require DIR . '/../../../../vendor/autoload.php';

00108: (new \TYPO3\CMS\Install\Http\Application($classLoader))->run();

00109: });

1 {closure}()

/var/www/_Sources/typo3_src-7.6.10/typo3/sysext/install/Start/Install.php:

00107: $classLoader = require DIR . '/../../../../vendor/autoload.php';
00108: (new \TYPO3\CMS\Install\Http\Application($classLoader))->run();

00109: });

Associated revisions

Revision 78e7f989 (diff)
Added by Susanne Moog about 1 year ago

[BUGFIX] Fix declaration of injectView in install tool

When using PHP7 declarations of sub classes have to
be compatible to their parent declarations.

As the install tool has been completely refactored in
newer TYPO3 version this patch implements only a
workaround to prevent the PHP warning.

Change-Id: I4128b3aef30a3a1bb9de6188509db1cdf4314b02
Resolves: #77203
Releases: 7.6
Reviewed-on: https://review.typo3.org/54417
Tested-by: TYPO3com <>
Reviewed-by: Wouter Wolters <>
Reviewed-by: Christian Kuhn <>
Tested-by: Christian Kuhn <>
Reviewed-by: Oliver Hader <>
Tested-by: Oliver Hader <>

History

#1 Updated by Christian Kuhn over 2 years ago

Hmmm, looks like a hidden php 7.0 issue at first glance - master maybe not affected since the FailSafeView was removed there.

Would anyone like to dig deeper and try to come up with a patch?

#2 Updated by Renzo Bauen almost 2 years ago

Same issue for me!
I have two installations

Installation A, working as expected:
/var/www/test-->website (where the apache points to)
/var/www/typo3_src-7.6.12 -->core

Installation B, NOT working:
/var/www/dev/test -->website (where the apache points to)
/var/www/dev/typo3_src-7.6.12 -->core

B is a 1:1 copy A; for both the symlink to the core reads like this: typo3_src -> ../typo3_src-7.6.1
The rights are exactly set the same.

For me it looks like there where somewhere a hardcoded path...
Both installations are working well, except for the core update!

#3 Updated by Renzo Bauen almost 2 years ago

I did some debugging:
So i saw, that my Installation A was running on PHP 5.6 and Installation B on PHP 7.
I changed the PHP Version to 7 for Installation A: result -> same error!

Then i checked the ajax calls, to see, whitch of them goes wrong.

In File typo3/sysext/install/Resources/Public/JavaScript/Install.js line 413ff the first Call for an action (coreUpdateUpdateVersionMatrix) goes wrong and returns an error.

From line 417: success: function(result) the script jumps directly to line 423 and then the server throws a 500 internal server error, without touching the lines 418 to 422.

The called URL is: http://www.testserver.tld/typo3/sysext/install/Start/Install.php?install[action]=importantActions&install[context]=backend&install[controller]=tool&install%5Bcontroller%5D=ajax&install%5Baction%5D=coreUpdateUpdateVersionMatrix&_=1482095896198

If i check this URL by hand, then TYPO3 throws the same error as Thomas mentioned allready.

#4 Updated by Hartmut Steglich over 1 year ago

Same problem here

Custom configuration [Active]
Debug [Active]
=> error

Live [Active]
=> no problem, update as expected

TYPO3 7.6.15 -> 7.6.16
PHP 7.1.0

#5 Updated by David Henninger over 1 year ago

Hartmut Steglich wrote:

Same problem here

Custom configuration [Active]
Debug [Active]
=> error

Live [Active]
=> no problem, update as expected

TYPO3 7.6.15 -> 7.6.16
PHP 7.1.0

I have - or rather - had the same issue, but I still don't understand what happened:

I first tried to narrow it down, figuring out which of the variables that are set with the live and debug presets is the cause of this. First I set it to live, checked the update function (worked!), then switched to debug (update failed again) and applied the "live" options one by one. Updates started working when I set the SYS/exceptionalErrors from 28674 (E_WARNING | E_RECOVERABLE_ERROR | E_DEPRECATED | E_USER_DEPRECATED) to 20480 (E_RECOVERABLE_ERROR | E_USER_DEPRECATED) for some reason.

However, after a reset to live preset and then back to debug, it continued working. I even restarted PHP7 (php7.0-fpm 7.0.18-1~dotdeb+8.1) and cleared typo3temp manually, but no change:
I can check for updates now, no matter which preset gets applied. I am running Typo3 7.6.18

For reference, these settings get applied with the LIVE preset:
'BE/debug' => ''
'FE/debug' => ''
'SYS/devIPmask' => ''
'SYS/displayErrors' => '0'
'SYS/enableDeprecationLog' => ''
'SYS/sqlDebug' => '0'
'SYS/systemLogLevel' => '2'
'SYS/clearCacheSystem' => ''
'SYS/exceptionalErrors' => '20480'
'GFX/image_processing' => '1'
'GFX/im' => '1'
'GFX/im_path' => '/usr/bin/'
'GFX/im_path_lzw' => '/usr/bin/'
'GFX/im_version_5' => 'gm'
'GFX/im_v5effects' => '-1'
'GFX/im_mask_temp_ext_gif' => '1'
'GFX/colorspace' => 'RGB'

And heres the debug preset on my system:
'BE/debug' => '1'
'FE/debug' => '1'
'SYS/devIPmask' => '*'
'SYS/displayErrors' => '1'
'SYS/enableDeprecationLog' => 'file'
'SYS/sqlDebug' => '1'
'SYS/systemLogLevel' => '0'
'SYS/exceptionalErrors' => '28674'
'SYS/clearCacheSystem' => '1'
'GFX/image_processing' => '1'
'GFX/im' => '1'
'GFX/im_path' => '/usr/bin/'
'GFX/im_path_lzw' => '/usr/bin/'
'GFX/im_version_5' => 'gm'
'GFX/im_v5effects' => '-1'
'GFX/im_mask_temp_ext_gif' => '1'
'GFX/colorspace' => 'RGB'

#6 Updated by Gerrit Code Review about 1 year ago

  • Status changed from New to Under Review

Patch set 1 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54417

#7 Updated by Gerrit Code Review about 1 year ago

Patch set 2 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54417

#8 Updated by Gerrit Code Review about 1 year ago

Patch set 3 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54417

#9 Updated by Gerrit Code Review about 1 year ago

Patch set 4 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/54417

#10 Updated by Anonymous about 1 year ago

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

#11 Updated by Benni Mack about 2 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF