Bug #47124
closedDebugUtility runs into max_execution_timeout on huge error messages
0%
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
Updated by Anja Leichsenring over 11 years ago
- 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
Updated by Markus Klein over 11 years ago
- 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.
Updated by Markus Wagner over 11 years ago
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
Updated by Mathias Schreiber almost 10 years ago
- 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?
Updated by Alexander Opitz over 9 years ago
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).
Updated by Alexander Opitz about 9 years ago
- 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.