Bug #81947
Updated by Xavier Perseguers over 7 years ago
h2. How-to reproduce
* Create a workspace record
* Create a scheduler task to auto-publish workspaces
* Manually run the scheduler task
The page goes blank (no Xdebug) or shows something like:
<pre>
Fatal error: Maximum function nesting level of '1200' reached, aborting! in /Users/xavier/Projects/TYPO3-Core/TYPO3_8-7/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php on line 325
Call Stack
# Time Memory Function Location
1 0.0034 366704 {main}( ) .../index.php:0
2 0.0597 370112 require( '/Users/xavier/Projects/TYPO3-Core/TYPO3_8-7/typo3/sysext/backend/Resources/Private/Php/backend.php' ) .../index.php:3
3 0.0597 370432 {closure:/Users/xavier/Projects/TYPO3-Core/TYPO3_8-7/typo3/sysext/backend/Resources/Private/Php/backend.php:21-25}( ) .../backend.php:25
4 0.1927 9858256 TYPO3\CMS\Backend\Http\Application->run( ??? ) .../backend.php:24
5 0.2004 10219288 TYPO3\CMS\Core\Core\Bootstrap->handleRequest( ??? ) .../Application.php:92
6 0.2026 10297384 TYPO3\CMS\Backend\Http\BackendModuleRequestHandler->handleRequest( ??? ) .../Bootstrap.php:310
7 0.3318 19002136 TYPO3\CMS\Backend\Http\BackendModuleRequestHandler->dispatchModule( ??? ) .../BackendModuleRequestHandler.php:89
8 0.3346 19069024 TYPO3\CMS\Core\Http\Dispatcher->dispatch( ???, ??? ) .../BackendModuleRequestHandler.php:169
9 0.4416 22320160 call_user_func_array:{/Users/xavier/Projects/TYPO3-Core/TYPO3_8-7/typo3/sysext/core/Classes/Http/Dispatcher.php:41} ( ???, ??? ) .../Dispatcher.php:41
10 0.4416 22320192 TYPO3\CMS\Scheduler\Controller\SchedulerModuleController->mainAction( ???, ??? ) .../Dispatcher.php:41
11 0.4623 22768944 TYPO3\CMS\Scheduler\Controller\SchedulerModuleController->main( ) .../SchedulerModuleController.php:314
12 0.4624 22769072 TYPO3\CMS\Scheduler\Controller\SchedulerModuleController->getModuleContent( ) .../SchedulerModuleController.php:158
13 0.4625 22769448 TYPO3\CMS\Scheduler\Controller\SchedulerModuleController->executeTasks( ) .../SchedulerModuleController.php:243
14 0.4715 23450824 TYPO3\CMS\Scheduler\Scheduler->executeTask( ??? ) .../SchedulerModuleController.php:867
15 0.4828 23450936 TYPO3\CMS\Workspaces\Task\AutoPublishTask->execute( ) .../Scheduler.php:181
16 0.4894 23468392 TYPO3\CMS\Workspaces\Service\AutoPublishService->autoPublishWorkspaces( ) .../AutoPublishTask.php:34
17 0.4922 23472728 TYPO3\CMS\Core\Database\Query\QueryBuilder->execute( ) .../AutoPublishService.php:80
18 0.4928 23474152 Doctrine\DBAL\Query\QueryBuilder->execute( ) .../QueryBuilder.php:173
19 0.4928 23474152 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:206
20 0.4928 23474152 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
21 0.4929 23474336 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
22 0.4929 23474368 implode ( ???, ??? ) .../CompositeExpression.php:122
23 0.4929 23474456 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
24 0.4929 23474456 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
25 0.4934 23475880 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
26 0.4934 23475880 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
27 0.4935 23476064 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
28 0.4935 23476096 implode ( ???, ??? ) .../CompositeExpression.php:122
29 0.4935 23476200 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
30 0.4935 23476200 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
31 0.4941 23477624 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
32 0.4941 23477624 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
33 0.4942 23477808 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
34 0.4942 23477840 implode ( ???, ??? ) .../CompositeExpression.php:122
35 0.4942 23477960 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
36 0.4942 23477960 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
37 0.4946 23479384 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
38 0.4946 23479384 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
39 0.4946 23479568 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
40 0.4947 23479600 implode ( ???, ??? ) .../CompositeExpression.php:122
41 0.4947 23479736 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
42 0.4947 23479736 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
43 0.4950 23481160 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
44 0.4950 23481160 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
45 0.4950 23481344 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
46 0.4951 23481376 implode ( ???, ??? ) .../CompositeExpression.php:122
47 0.4951 23481528 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
48 0.4951 23481528 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
49 0.4954 23482952 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
50 0.4954 23482952 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
51 0.4954 23483136 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
52 0.4954 23483168 implode ( ???, ??? ) .../CompositeExpression.php:122
53 0.4954 23483336 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
54 0.4954 23483336 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
55 0.4957 23485080 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
56 0.4957 23485080 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
57 0.4958 23485264 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
58 0.4958 23485296 implode ( ???, ??? ) .../CompositeExpression.php:122
59 0.4958 23485496 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
60 0.4958 23485496 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
61 0.4962 23487240 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
62 0.4962 23487240 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
63 0.4963 23487424 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
64 0.4963 23487456 implode ( ???, ??? ) .../CompositeExpression.php:122
65 0.4963 23487656 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
66 0.4963 23487656 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
67 0.4967 23489400 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
68 0.4967 23489400 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
69 0.4967 23489584 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
70 0.4967 23489616 implode ( ???, ??? ) .../CompositeExpression.php:122
71 0.4967 23489848 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
72 0.4967 23489848 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
73 0.4971 23491592 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
74 0.4971 23491592 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
75 0.4971 23491776 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
76 0.4971 23491808 implode ( ???, ??? ) .../CompositeExpression.php:122
77 0.4971 23492040 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
78 0.4971 23492040 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
79 0.4975 23493784 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
80 0.4975 23493784 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
81 0.4976 23493968 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
82 0.4976 23494000 implode ( ???, ??? ) .../CompositeExpression.php:122
83 0.4976 23494264 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
...
</pre>
where "..." stands for "nested-looping" over:
<pre>
140 0.5017 23521272 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
141 0.5017 23521456 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
142 0.5017 23521488 implode ( ???, ??? ) .../CompositeExpression.php:122
143 0.5017 23521912 TYPO3\CMS\Core\Database\Query\QueryBuilder->__toString( ) .../CompositeExpression.php:122
144 0.5017 23521912 TYPO3\CMS\Core\Database\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:860
145 0.5021 23524296 Doctrine\DBAL\Query\QueryBuilder->getSQL( ) .../QueryBuilder.php:199
146 0.5021 23524296 Doctrine\DBAL\Query\QueryBuilder->getSQLForSelect( ) .../QueryBuilder.php:244
147 0.5021 23524480 Doctrine\DBAL\Query\Expression\CompositeExpression->__toString( ) .../QueryBuilder.php:1113
</pre>
h2. Where to "debug"
This happens within @\TYPO3\CMS\Workspaces\Service\AutoPublishService::autoPublishWorkspaces(), on line 45 where the list of workspaces to be published is prepared with code:
<pre>
$result = $queryBuilder
->select('uid', 'swap_modes', 'publish_time', 'unpublish_time')
->from('sys_workspace')
->where(
$queryBuilder->expr()->eq(
'pid',
$queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
),
$queryBuilder->orWhere(
$queryBuilder->andWhere(
$queryBuilder->expr()->neq(
'publish_time',
$queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
),
$queryBuilder->expr()->lte(
'publish_time',
$queryBuilder->createNamedParameter($GLOBALS['EXEC_TIME'], \PDO::PARAM_INT)
)
),
$queryBuilder->andWhere(
$queryBuilder->expr()->eq(
'publish_time',
$queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
),
$queryBuilder->expr()->neq(
'unpublish_time',
$queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
),
$queryBuilder->expr()->lte(
'unpublish_time',
$queryBuilder->createNamedParameter($GLOBALS['EXEC_TIME'], \PDO::PARAM_INT)
)
)
)
)
->execute();
</pre>