Bug #68480
closed
compatibility6 crashes TYPO3 BE - part 2
Added by Franz Holzinger over 9 years ago.
Updated about 7 years ago.
Sprint Focus:
Remote Sprint
Description
I did fetch the Git for the patch of bug #67933. However Compatibility6 still causes a crash.
The Install Tool hangs and shows these debug trace lines.
Uncaught TYPO3 Exception
#1320585902: $hookObject "TYPO3\CMS\Compatibility6\Hooks\ExtTablesPostProcessing\TcaMigration" must implement interface TYPO3\CMS\Core\Database\TableConfigurationPostProcessingHookInterface (More information)
UnexpectedValueException thrown in file
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/core/Classes/Core/Bootstrap.php in line 1023.
12 TYPO3\CMS\Core\Core\Bootstrap::runExtTablesPostProcessingHooks()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/core/Classes/Core/Bootstrap.php:
00975: ExtensionManagementUtility::loadExtTables($allowCaching);
00976: $this->executeExtTablesAdditionalFile();
00977: $this->runExtTablesPostProcessingHooks();
00978: return $this;
00979: }
11 TYPO3\CMS\Core\Core\Bootstrap::loadExtensionTables(boolean)
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Controller/Action/AbstractAction.php:
00253: ->unsetReservedGlobalVariables()
00254: ->initializeTypo3DbGlobal()
00255: ->loadExtensionTables(FALSE);
00256: }
00257:
10 TYPO3\CMS\Install\Controller\Action\AbstractAction::loadExtLocalconfDatabaseAndExtTables()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Controller/Action/Tool/ImportantActions.php:
00055: || isset($this->postValues['set']['databaseAnalyzerAnalyze'])
00056: ) {
00057: $this->loadExtLocalconfDatabaseAndExtTables();
00058: }
00059: if (isset($this->postValues['set']['databaseAnalyzerExecute'])) {
9 TYPO3\CMS\Install\Controller\Action\Tool\ImportantActions::executeAction()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Controller/Action/AbstractAction.php:
00087: public function handle() {
00088: $this->initializeHandle();
00089: return $this->executeAction();
00090: }
00091:
8 TYPO3\CMS\Install\Controller\Action\AbstractAction::handle()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Controller/ToolController.php:
00185: $toolAction->setPostValues($this->getPostValues());
00186: $toolAction->setLastError($this->getLastError());
00187: $this->output($toolAction->handle());
00188: }
00189:
7 TYPO3\CMS\Install\Controller\ToolController::dispatchAuthenticationActions()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Controller/ToolController.php:
00061: $this->outputLoginFormIfNotAuthorized();
00062: $this->registerExtensionConfigurationErrorHandler();
00063: $this->dispatchAuthenticationActions();
00064: }
00065:
6 TYPO3\CMS\Install\Controller\ToolController::execute()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Http/RequestHandler.php:
00058: $controllerClassName = \TYPO3\CMS\Install\Controller\StepController::class;
00059: }
00060: GeneralUtility::makeInstance($controllerClassName)->execute();
00061: }
00062:
5 TYPO3\CMS\Install\Http\RequestHandler::handleRequest()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/core/Classes/Core/Bootstrap.php:
00188: public function handleRequest() {
00189: $requestHandler = $this->resolveRequestHandler();
00190: $requestHandler->handleRequest();
00191: return $this;
00192: }
4 TYPO3\CMS\Core\Core\Bootstrap::handleRequest()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Classes/Http/Application.php:
00070: ->startOutputBuffering()
00071: ->loadConfigurationAndInitialize(FALSE, \TYPO3\CMS\Core\Package\FailsafePackageManager::class)
00072: ->handleRequest();
00073:
00074: if ($execute !== NULL) {
3 TYPO3\CMS\Install\Http\Application::run()
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Start/Install.php:
00106: call_user_func(function() {
00107: $classLoader = require __DIR__ . '/../../../contrib/vendor/autoload.php';
00108: (new \TYPO3\CMS\Install\Http\Application($classLoader))->run();
00109: });
2 {closure}()
1 call_user_func(Closure)
/var/www/html/developer/TYPO3.CMS-master/typo3/sysext/install/Start/Install.php:
00107: $classLoader = require __DIR__ . '/../../../contrib/vendor/autoload.php';
00108: (new \TYPO3\CMS\Install\Http\Application($classLoader))->run();
00109: });
- Status changed from New to Needs Feedback
- Assignee set to Mathias Schreiber
Hi Franz,
first off, please do not open new tickets for the same issue.
Apart from that I am unable to reproduce the error you described.
Maybe we do something differently so here's my clickpath:
- Update to current master
- Go to extension manager
- type "compat" in the searchbox
- click the Install icon
I clicked through the install tool as well as through modules, I can't seem to find the error you describe.
Same way works for disabling the extension again.
Can you give some more information on what you did prior to the error showing up?
Hello Mathias,
I could not reopen the former issue #67933. This has already been marked as resolved. And it is easier for you to have a new error number.
I am still in the Update process coming from a former TYPO3 7 version.
Now I did fetch the most recent master from Git. Don't I need another patch level from Git?
The TYPO3 site still hangs in the Install Tool upgrade process. I can hardly open th TYPO3 backend now. It is gone anyways.
*http://localhost/developer/typo3/sysext/install/Start/Install.php?install[action]=upgradeWizard&install[context]=standalone&install[controller]=tool
*
Uncaught TYPO3 Exception
#1320585902: $hookObject "TYPO3\CMS\Compatibility6\Hooks\ExtTablesPostProcessing\TcaMigration" must implement interface TYPO3\CMS\Core\Database\TableConfigurationPostProcessingHookInterface (More information)
UnexpectedValueException thrown in file
/var/www/html/developer/TYPO3.CMS/typo3/sysext/core/Classes/Core/Bootstrap.php in line 1003.
12 TYPO3\CMS\Core\Core\Bootstrap::runExtTablesPostProcessingHooks()
/var/www/html/developer/TYPO3.CMS/typo3/sysext/core/Classes/Core/Bootstrap.php:
00955: ExtensionManagementUtility::loadExtTables($allowCaching);
00956: $this->executeExtTablesAdditionalFile();
00957: $this->runExtTablesPostProcessingHooks();
00958: return $this;
00959: }
11 TYPO3\CMS\Core\Core\Bootstrap::loadExtensionTables(boolean)
/var/www/html/developer/TYPO3.CMS/typo3/sysext/install/Classes/Controller/Action/AbstractAction.php:
00252: ->unsetReservedGlobalVariables()
00253: ->initializeTypo3DbGlobal()
00254: ->loadExtensionTables(FALSE);
00255: }
00256:
You can close this issue.
I deinstalled compatibility6 by the file PackageStates.php. Then I could follow the upgrade steps in the Install Tool. After reinstallation of compatibility6 everything was fine.
- Status changed from Needs Feedback to Closed
- Status changed from Closed to New
- Target version set to 7.4 (Backend)
- Sprint Focus set to Stabilization Sprint
- Assignee changed from Mathias Schreiber to Helmut Hummel
hey helmut, can you take a look at this, please?
Mathias Schreiber wrote:
hey helmut, can you take a look at this, please?
@Franz Koch: how did you enable compatibility6 extension?
general question: when and how or if at all should we enable compatibility for upgrade?
I did an upgrade from the TYPO3 version 7.2.0.
Everything had been running and installed already. Then I copied the new TYPO3 source files of TYPO3 7.3.0 there and run the Install Tool which hung on the bug (part 1). I was not able to continue with the Install Tool. Then I did fetch your latest bug fix from Git. It brought me a step further.
compatibility6 has been enabled in TYPO3 7.2 already, when this extension did work fine.
Thanks for your quick response!
Franz Holzinger wrote:
compatibility6 has been enabled in TYPO3 7.2 already, when this extension did work fine.
Allright. So the question is, when and where to re-build the class loading information, when the core is updated.
At least the core updater should do so, but maybe we should also have a step in the migration wizard to tackle that issue.
- Status changed from New to Accepted
- Target version changed from 7.4 (Backend) to 7.5
- Sprint Focus changed from Stabilization Sprint to On Location Sprint
- Sprint Focus changed from On Location Sprint to Remote Sprint
I have the same error but with a fresh installed TYPO3 CMS 7.4 with composer (no other dependencies).
After the installation, my first action is to enable compatibility6 in EM and then I get the exception.
I tried the same, but this time I installed TYPO3 CMS 7.4 from the sources and it worked.
The exception is thrown with a new TYPO3 CMS 7.4 installation in composer mode.
Sebastian Schawohl wrote:
I have the same error but with a fresh installed TYPO3 CMS 7.4 with composer (no other dependencies).
You have a composer distribution?
After the installation, my first action is to enable compatibility6 in EM and then I get the exception.
Then you need to specify the class aliases and the class loading information for in your root composer.json
There is no way around that. We cannot add these to our typo3/cms package, because then we basically enable the compatibility layer for all users!
I tried the same, but this time I installed TYPO3 CMS 7.4 from the sources and it worked.
Yes, this is different. It is on purpose that extensions can be handled with the EM in that case, including their classes and aliases
Then it works also for compat6
The exception is thrown with a new TYPO3 CMS 7.4 installation in composer mode.
This will be more transparent once we extract compatiblity6 to an own package. Then you can simply require this package via composer and be done
Helmut Hummel wrote:
Sebastian Schawohl wrote:
I have the same error but with a fresh installed TYPO3 CMS 7.4 with composer (no other dependencies).
You have a composer distribution?
I followed these instructions.
After the installation, my first action is to enable compatibility6 in EM and then I get the exception.
Then you need to specify the class aliases and the class loading information for in your root composer.json
Thank you, this was the missing part: classes aliases were missing for compatibility6
.
There is no way around that. We cannot add these to our typo3/cms package, because then we basically enable the compatibility layer for all users!
Yes of course this would not be a good solution.
The exception is thrown with a new TYPO3 CMS 7.4 installation in composer mode.
This will be more transparent once we extract compatiblity6 to an own package. Then you can simply require this package via composer and be done
Yes I think it will be more transparent.
From reading the docs I didn't understand that I needed to add these lines in my composer.json
file:
"autoload": {
"psr-4": {
"TYPO3\\CMS\\Compatibility6\\": "vendor/typo3/cms/typo3/sysext/compatibility6/Classes/"
}
}
After that it worked.
For me no more issue, there wasn't any actually, sorry.
Sebastian Schawohl wrote:
I followed these instructions.
For me no more issue, there wasn't any actually, sorry.
Thanks for the swift reply! No need to be sorry! You can do us a favor and add your new knowledge to the wiki. Thanks in advance!
Btw. The composer config you need to do for compatibility6 is only "complete" if you also add the aliases:
"autoload": {
"psr-4": {
"TYPO3\\CMS\\Compatibility6\\": "vendor/typo3/cms/typo3/sysext/compatibility6/Classes/"
}
},
"extra": {
"helhum/class-alias-loader": {
"class-alias-maps": [
"vendor/typo3/cms/typo3/sysext/compatibility6/Migrations/Code/ClassAliasMap.php"
]
}
}
This would be the equivalent config to what happens when you install the ext in non composer mode
Helmut Hummel wrote:
This would be the equivalent config to what happens when you install the ext in non composer mode
uhm, I think this config will only work in TYPO3 master
The extra section for 7.4 must still look like this:
"extra": {
"class-alias-maps": [
"Migrations/Code/ClassAliasMap.php"
]
},
- Target version changed from 7.5 to 7 LTS
- Status changed from Accepted to Resolved
I consider this resolved. compatiblity6 will be moved out of core soon. And we have a command which updates the class information if needed (which should be very seldomly the case)
Issues during upgrade from 7.x to 7LTS are acceptable imho and can be solved by executing the command.
I just hit this issue. So it seems that it has not been fixed yet.
I'm upgrading from 6.2.29 to 7.6.14. After executing the first upgrade wizards, I came to the compatibility6 one. Right after executing this, I got this exception.
This was NOT a composer installation. I just downloaded the source and set the new symbolic link.
What is the command that you refer to when you say "...solved by executing the command"?
ok. In my case this was caused by the typo3temp/autoload folder that had gotten somehow root ownership. After deleting this manually, everything worked. I assume this folder got this ownership from the command line reference index checking I did previously.
- Status changed from Resolved to Closed
Also available in: Atom
PDF