Bug #47124
closed
DebugUtility runs into max_execution_timeout on huge error messages
Added by Daniel Hürtgen over 11 years ago.
Updated about 9 years ago.
Description
When you have backend debugging enabled and e.g. make an db insert with huge amount of data and it fails, the database connection class will trigger the (TYPO3\CMS\Core\Utility\DebugUtility::)debug to visualize the stack trace within the backend.
Because the debug message will be rendered by javascript, the message must be encoded by the javascriptencoder (\TYPO3\CMS\Core\Encoder\JavaScriptEncoder) encode function. The javscript encoder use the character convert service to fetch character for character for encoding, which lame for at all 23100 characters i had. So i went into a max_execution_timeout after 600 seconds (10 minutes).
So i've written some test to reproduce this issue. On line 89 within the javascript encoder class, the debug string will be split into characters via the charsetconverter service, i already said. This next 4 lines cause a duration of over 10 minutes with a 23000 character long string. I've also tested it with an random 1000 character long string and it had already a duration of 9 seconds. Maybe we need a limitation for strings to prevent running into timeouts.
Files
- Subject changed from DebugUtility will ran into max_execution_timeout on huge error messages to DebugUtility runs into max_execution_timeout on huge error messages
- Target version deleted (
6.0.5)
Are you using iconv or mbstring for encoding?
Internal encoding is really slow, causing this sort of timeouts.
Please set $GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils']
accordingly.
I have the same problem here.
Markus Klein wrote:
Are you using iconv or mbstring for encoding?
Please set $GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils']
accordingly.
$GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils'] = 'mbstring';
leads to
Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/www1/vhosts/zarges/mw.dev.zarges/TYPO3_6-0-3/typo3/sysext/core/Classes/Charset/CharsetConverter.php on line 1588
$GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils'] = 'iconv';
leads to
Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/www1/vhosts/zarges/mw.dev.zarges/TYPO3_6-0-3/typo3/sysext/core/Classes/Charset/CharsetConverter.php on line 1601
- Status changed from New to Needs Feedback
- Assignee set to Mathias Schreiber
- Is Regression set to No
I'm puzzled how to deal with this.
You will always reach a certain point when your server will inevitably run into a timeout.
Do you have ideas how this can be dealt with?
As this part was changed a bit (performance wise) can you retest with TYPO CMS 6.2.13 report back if the issue still happens? (With your example, it will happen again on longer strings).
- Status changed from Needs Feedback to Closed
- Assignee deleted (
Mathias Schreiber)
No feedback within the last 90 days => closing this issue.
If you think that this is the wrong decision or experience this issue again, then please write to the mailing list typo3.teams.bugs with issue number and an explanation or open a new ticket and add a relation to this ticket number.
Also available in: Atom
PDF