Bug #77203
closedCore Update fails if configuration presets --> Debug is set to "Debug [Active]"
100%
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: });
Updated by Christian Kuhn over 8 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?
Updated by Renzo Bauen almost 8 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!
Updated by Renzo Bauen almost 8 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.
If i check this URL by hand, then TYPO3 throws the same error as Thomas mentioned allready.
Updated by Hartmut Steglich almost 8 years 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
Updated by David Henninger over 7 years ago
Hartmut Steglich wrote:
Same problem here
Custom configuration [Active]
Debug [Active]
=> errorLive [Active]
=> no problem, update as expectedTYPO3 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'
Updated by Gerrit Code Review about 7 years 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
Updated by Gerrit Code Review about 7 years 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
Updated by Gerrit Code Review about 7 years 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
Updated by Gerrit Code Review about 7 years 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
Updated by Anonymous about 7 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset 78e7f989500fc4534c7b6249ae8c4a3ea5911fcd.