Project

General

Profile

Actions

Bug #23641

closed

Update to 4.4.3 breaks with templavoila 1.4.4

Added by Matthias Krappitz over 13 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Should have
Category:
-
Target version:
-
Start date:
2010-09-29
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
4.4
PHP Version:
5.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Not sure why and how this comes up now, but after updating from 4.4.2 to 4.4.3 the frontend says "TemplaVoila ERROR: Couldn't find a Data Structure set for table/row "pages:x". Please select a Data Structure and Template Object first."

After BE-Login the frontend and backend says:

Uncaught TYPO3 Exception
#1: PHP Catchable Fatal Error: Argument 1 passed to t3lib_TSparser_TSconfig::matching() must be an array, string given, called in /homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php on line 66 and defined in /homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php line 137
...

Maybe this bug report should be assigned to the templavoila project, but this seems to be a huge problem for a lot of installations.

Uncaught TYPO3 Exception
#1: PHP Catchable Fatal Error: Argument 1 passed to t3lib_TSparser_TSconfig::matching() must be an array, string given, called in /homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php on line 66 and defined in /homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php line 137

t3lib_error_Exception thrown in file
/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/error/class.t3lib_error_errorhandler.php in line 106.

6 t3lib_error_ErrorHandler::handleError(4096, "Argument 1 passed to t3lib_TSparser_TSconfig::matc…t3lib_tsparser_tsconfig.php on line 66 and defined", "/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php", 137, array)

/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php:

00135: * @return array The input array with matching sections filled into the "match" key
00136: */

00137: protected function matching(array $cc) {

00138: if (is_array($cc['sections'])) {
00139: /* @var $matchObj t3lib_matchCondition_backend */

5 t3lib_TSparser_TSconfig::matching("A:3:{s:8:"TSconfig";a:6:{s:8:"options.";a:5:{s:15:…:5:"match";a:0:{}}bb8acc0ddfaec182f3f60350e69b0f03")

/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_tsparser_tsconfig.php:

00064: $storedMD5 = substr($cachedContent, -strlen($hash));
00065: $storedData['match'] = array();

00066: $storedData = $this->matching($storedData);

00067: $checkMD5 = md5(serialize($storedData));
00068:

4 t3lib_TSparser_TSconfig::parseTSconfig("# ***************************************?…ebug = 1
? enable.info = 1
? #enable.edit = 1
?}", "userTS")

/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_userauthgroup.php:

01233: // Perform TS-Config parsing with condition matching
01234: $parseObj = t3lib_div::makeInstance('t3lib_TSparser_TSconfig');

01235: $res = $parseObj->parseTSconfig($this->userTS_text, 'userTS');

01236: if ($res) {
01237: $this->userTS = $res['TSconfig'];

3 t3lib_userAuthGroup::fetchGroupData()

/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/t3lib/class.t3lib_beuserauth.php:

00209: }
00210: } else { // ...and if that's the case, call these functions

00211: $this->fetchGroupData(); // The groups are fetched and ready for permission checking in this initialization. Tables.php must be read before this because stuff like the modules has impact in this

00212: if ($this->checkLockToIP()) {
00213: if ($this->isUserAllowedToLogin()) {

2 t3lib_beUserAuth::backendCheckLogin()

/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/typo3/init.php:

00425: $BE_USER->start(); // Object is initialized
00426: $BE_USER->checkCLIuser();

00427: $BE_USER->backendCheckLogin(); // Checking if there's a user logged in

00428:
00429: // Setting the web- and filemount global vars:

1 require("/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/typo3/init.php")

/homepages/28/d100116655/htdocs/shared/typo3_src-4.4.3/typo3/index.php:

00061:
00062: define('TYPO3_PROCEED_IF_NO_USER', 1);

00063: require('init.php');

00064: require('template.php');
00065:

(issue imported from #M15846)


Files

unserialise-issues.png (118 KB) unserialise-issues.png Administrator Admin, 2010-09-30 23:22
Actions #1

Updated by Matthias Krappitz over 13 years ago

Ok, i took a further look into this and at least got the backend working again by quickly patching in class.t3lib_tsparser_tsconfig.php on line 66 adding the following dumb if because whyever one unserialize is not enough to convert the TSConfig from its serialised representation in the database:

...
if (!is_array($storedData)) {
$storedData = unserialize(unserialize($cachedContent));
}
$storedData = $this->matching($storedData);
$checkMD5 = md5(serialize($storedData));

Furthermore templavoila is still not working because as there is also internally some stuff not getting properly unserialised. See screenshot attached.

I did not dig very much deeper and got no full understanding what is going wroing wrong here exactly, but as everyhting is fine again when using the 4.4.2 core, I suppose it has to do with the core and not anything else. I hope I can point some of the core guys into the right direction with this report.

php version is 5.2.9 with Suhosin Patch 0.9.7. Is no one else having this kind of problem with 4.4.3? It looks kind of serious to me.

Actions #2

Updated by Steffen Gebert over 13 years ago

Can you please check the new TV version 1.5.0?

Actions #3

Updated by Matthias Krappitz over 13 years ago

Thx for the hint, but it does not change anything. Full backend access to the test-system where this occurs can be provided. I'm really asking myself why there is no one else having this problem, especially in a more or less blank TYPO3 installation with just tt_news, realurl, templavoila and pretty much nothing else in there.

Actions #4

Updated by Matthias Krappitz over 13 years ago

i now got rid of this problem but with a very strange phenomenon - I downgraded to 4.4.2, de-installled extension templavoila, updated to 4.4.4 and all is working fine, but even though I de-installed templavoila before, it was still installed and now is running fine. I got no clue how come.

Actions #5

Updated by Matthias Krappitz over 13 years ago

Now i finally found the explanation. There was a change in the caching framework, that made it necessary to replace the t3lib_cache_frontend_StringFrontend with t3lib_cache_frontend_VariableFrontend in the caching configuration settings in localconf.php.

All other stuff happening were just side effects - so close this issue, please. Anyway this was a pain in the ... to debug.

Actions #6

Updated by Benni Mack over 5 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF