Actions
Bug #44017
closedtypo3/thumbs.php causes invalid autoloader cache
Status:
Closed
Priority:
Must have
Assignee:
-
Category:
Backend API
Target version:
-
Start date:
2012-12-14
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
4.7
PHP Version:
Tags:
Complexity:
medium
Is Regression:
No
Sprint Focus:
Description
This bug is a little bit tricky, because it involves caching. Therefore the error shows up at other places, than where it's originated.
Symptom¶
Right part of the backend stays white. PHP-Error
PHP Fatal error: require(): Failed opening required 'PATH_tslibclass.tslib_content.php' in /var/www/typo3_src/4.7.0/t3lib/class.t3lib_div.php on line 5061After some minutes / hours the backend is usable again.
Backtrace
t3lib_div::requireFile() at /var/www/typo3_src/4.7.0/t3lib/class.t3lib_div.php : 5061 t3lib_autoloader::autoload() at /var/www/typo3_src/4.7.0/t3lib/class.t3lib_autoloader.php : 97 t3lib_autoloader::autoload() spl_autoload_call() ReflectionParameter::getConstructorArguments() at /var/www/typo3_src/4.7.0/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php : 73 Tx_Extbase_Object_Container_ClassInfoFactory::buildClassInfoFromClassName() at /var/www/typo3_src/4.7.0/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php : 47 Tx_Extbase_Object_Container_ClassInfoFactory::getClassInfo() at /var/www/typo3_src/4.7.0/typo3/sysext/extbase/Classes/Object/Container/Container.php : 344 Tx_Extbase_Object_Container_Container::getInstanceInternal() at /var/www/typo3_src/4.7.0/typo3/sysext/extbase/Classes/Object/Container/Container.php : 159 Tx_Extbase_Object_Container_Container::getInstance() at /var/www/typo3_src/4.7.0/typo3/sysext/extbase/Classes/Object/Container/Container.php : 120 Tx_Extbase_Object_Container_Container::get() at /var/www/typo3_src/4.7.0/typo3/sysext/extbase/Classes/Object/ObjectManager.php : 74 Tx_Extbase_Object_ObjectManager::__construct() at /var/www/vhosts/entb2012.ch/typo3conf/ext/flux/Classes/Backend/Preview.php : 76 Tx_Flux_Backend_Preview::makeInstance() at /var/www/typo3_src/4.7.0/t3lib/class.t3lib_div.php : 4847 t3lib_div::getUserObj() at /var/www/typo3_src/4.7.0/t3lib/class.t3lib_div.php : 4736 tx_cms_layout::tt_content_drawItem() at /var/www/typo3_src/4.7.0/typo3/sysext/cms/layout/class.tx_cms_layout.php : 1729 tx_cms_layout::getTable_tt_content() at /var/www/typo3_src/4.7.0/typo3/sysext/cms/layout/class.tx_cms_layout.php : 418 tx_cms_layout::getTable() at /var/www/typo3_src/4.7.0/typo3/sysext/cms/layout/class.tx_cms_layout.php : 118 tx_cms_layout::generateList() at /var/www/typo3_src/4.7.0/typo3/class.db_list.inc : 288 tx_cms_layout::renderListContent() at /var/www/typo3_src/4.7.0/typo3/sysext/cms/layout/db_layout.php : 1067 SC_db_layout::main() at /var/www/typo3_src/4.7.0/typo3/sysext/cms/layout/db_layout.php : 503 main() at /var/www/typo3_src/4.7.0/typo3/sysext/cms/layout/db_layout.php : 1361
Problem description¶
- Autoloader caches a map for classnames to filenames in
typo3temp/Cache/Code/cache_phpcode/..
. Content:<?php return array( ... 'tslib_adminpanel' => 'PATH_tslibclass.tslib_adminpanel.php', 'tslib_cobj' => 'PATH_tslibclass.tslib_content.php', 'tslib_frameset' => 'PATH_tslibclass.tslib_frameset.php', 'tslib_tableoffset' => 'PATH_tslibclass.tslib_tableoffset.php', 'tslib_controltable' => 'PATH_tslibclass.tslib_controltable.php', 'tslib_eidtools' => 'PATH_tslibclass.tslib_eidtools.php', 'tslib_fe' => 'PATH_tslibclass.tslib_fe.php', 'tslib_fecompression' => 'PATH_tslibclass.tslib_fecompression.php', 'tslib_fetce' => 'PATH_tslibclass.tslib_fetce.php', ...
- If the cache_phpcode is empty and
typo3/thumbs.php
is executed, a map with invalid filenames is generated, because PATH_tslib isn't defined and PHP uses the constant name as a value
Reproduce¶
- get the src url of a thumbnail in backend. e.g. typo3/thumbs.php?&file=%2Fvar%2Fwww%2Fvhosts%2Fmysite.ch%2Ffileadmin%2Ffiles%2Fpicture.png&size=56x42&md5sum=fbd1618afd&dummy=3543138413
- Clear cache_phpcode
rm typo3temp/Cache/Code/cache_phpcode/*
- open url from 1.
- atuoloader cache file is generated in typo3temp/Cache/Code/cache_phpcode/ containing
PATH_tslib
as a string an backend doesn't work any more until cache is cleared.
Actions