Bug #60655
closedBE-Login throws exception when session has expired
0%
Description
The BE-Login with Typo3 Version 6.2.4 sometimes throws an exception:
#1: PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Function spl_autoload_call() hasn't defined the class it was called for in ***/typo3_src-6.2.4/typo3/sysext/backend/Classes/Controller/LoginController.php line 147 (More information)
This happens mainly when I don't log out from the backend and then open the browser on the next day, so I guess the session just has timed out. I also saw that there are 2 cookies set: PHPSESSID and be_typo_user - when I delete these cookies, the backend login works again until the next day (when I reopen the browser and the session propably has expired).
Here is the full stacktrace as shown by the excpetion:
TYPO3\CMS\Core\Error\Exception thrown in file
***/typo3_src-6.2.4/typo3/sysext/core/Classes/Error/ErrorHandler.php in line 101.
6 TYPO3\CMS\Core\Error\ErrorHandler::handleError(2, "session_start() [<a href='function.session-start'>…_call() hasn't defined the class it was called for", "***/typo3_src-6.2.4/t…ext/backend/Classes/Controller/LoginController.php", 147, array)
5 session_start()
***/typo3_src-6.2.4/typo3/sysext/backend/Classes/Controller/LoginController.php:
00145: public function init() {
00146: // We need a PHP session session for most login levels
00147: session_start();
00148: $this->redirect_url = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('redirect_url'));
00149: $this->GPinterface = GeneralUtility::_GP('interface');
4 TYPO3\CMS\Backend\Controller\LoginController::init()
***/typo3_src-6.2.4/typo3/sysext/backend/Classes/Controller/LoginController.php:
00134: */
00135: public function __construct() {
00136: $this->init();
00137: }
00138:
3 TYPO3\CMS\Backend\Controller\LoginController::__construct()
***/typo3_src-6.2.4/typo3/sysext/core/Classes/Utility/GeneralUtility.php:
04362: switch (count($arguments)) {
04363: case 1:
04364: $instance = new $className();
04365: break;
04366: case 2:
2 TYPO3\CMS\Core\Utility\GeneralUtility::instantiateClass("TYPO3\CMS\Backend\Controller\LoginController", array)
***/typo3_src-6.2.4/typo3/sysext/core/Classes/Utility/GeneralUtility.php:
04344: }
04345: // Create new instance and call constructor with parameters
04346: $instance = static::instantiateClass($finalClassName, func_get_args());
04347: // Register new singleton instance
04348: if ($instance instanceof \TYPO3\CMS\Core\SingletonInterface) {
1 TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\CMS\Backend\Controller\LoginController")
***/typo3_src-6.2.4/typo3/index.php:
00046: }
00047:
00048: $loginController = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Controller\\LoginController');
00049: $loginController->main();
00050: $loginController->printContent();
Updated by Mathias Schreiber over 9 years ago
- Target version changed from next-patchlevel to 7.4 (Backend)
Updated by Helmut Hummel about 9 years ago
- Status changed from New to Needs Feedback
please look for
ini_set('unserialize_callback_func', 'spl_autoload_call');
In your extension code. Report back the extension which uses it. The core itself does not use something like that, but Symfony apparently is.
Updated by Susanne Moog about 9 years ago
- Target version changed from 7.4 (Backend) to 7.5
Updated by Flummi no-lastname-given about 9 years ago
I did a quick check and found it in the extension "extension builder' (https://typo3.org/extensions/repository/view/extension_builder):
$ grep -R 'spl_autoload_call' *
extension_builder/Classes/Parser/AutoLoader.php: ini_set('unserialize_callback_func', 'spl_autoload_call');
extension_builder/Resources/Private/PHP/PHP-Parser/lib/PHPParser/Autoloader.php: ini_set('unserialize_callback_func', 'spl_autoload_call');
I then looked up the version of extension builder I had installed: it is 2.5.2
I didn't expect an extension to force this behaviour. I will try to update the extension or to just delete it on live system and report later, if the problem disappears with this change.
Thanks for your help, Helmut!
Updated by Flummi no-lastname-given almost 9 years ago
Actually I did update the extension_bulder to the newest version (6.2.0) but I still find this line of code in it (grep -R 'spl_autoload_call' *, see last comment). So I just deinstalled the extension_builder and since then the error did not occur any more.
Updated by Wouter Wolters almost 9 years ago
- Status changed from Needs Feedback to Closed
Not a core problem. Closing this ticket.