Project

General

Profile

Actions

Bug #91413

closed

InvalidArgumentException in PageRepository having too many user group ids

Added by Frank W Blank almost 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Caching
Target version:
Start date:
2020-05-15
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
9
PHP Version:
7.3
Tags:
cache entry identifier
Complexity:
easy
Is Regression:
Sprint Focus:

Description

we found a bug in 9.5.17 in core files.
It is thrown wenn the BE user has access to many groups because there are a lot restricted sites. The string that is created in our case is

"PageRepository_groupAccessWhere_pages_fe_group_pages_0_-2_3_4_5_6_20_35_37_46_52_53_82_907_1017_1018_1020_1022_1110_1179_1671_1672_1673_1674_1675_1676_1677_1678_1679_1680_1681_1682_1683_1684_1685_1686_1687_1688_1689_1690_1691_1727_1775_1815_1817_1818_2103" 

it is too long

this commit should be overthought
[TYPO3 Github Commit](https://github.com/TYPO3/TYPO3.CMS/commit/34fcc2dc9e4d88ed3a33f9a8b0c8d860e304946d#diff-bdefdf9381ae0d42c73398fe045a53cb)

Problem is const

/**
 * Pattern an entry identifer must match.
*/
const PATTERN_ENTRYIDENTIFIER = '/^[a-zA-Z0-9_%\\-&]{1,250}$/';

in file
/typo3/sysext/core/Classes/Cache/Frontend/PhpFrontend.php

if system is configured for restricted access wich is manged by groups and some user got a lot access and the use in function

/**
 * Checks the validity of an entry identifier. Returns TRUE if it's valid.
 *
 * @param string $identifier An identifier to be checked for validity
 * @return bool
*/
public function isValidEntryIdentifier($identifier) {
return preg_match(self::PATTERN_ENTRYIDENTIFIER, $identifier) === 1;
}

in file

/typo3/sysext/core/Classes/Cache/Frontend/AbstractFrontend.php

that is called from

/**
 * Finds and returns a variable value from the cache.
 *
 * @param string $entryIdentifier Identifier of the cache entry to fetch
 *
 * @return mixed The value
 * @throws \InvalidArgumentException if the identifier is not valid
*/
public function get($entryIdentifier) {
if (!$this->isValidEntryIdentifier($entryIdentifier)) {
throw new \InvalidArgumentException(
'"' . $entryIdentifier . '" is not a valid cache entry identifier.',
1233058294
);
}

and throws the error because our given value is longer than 250 chars

table cf_cache_pages
identifier Index varchar(250) utf8mb4_unicode_ci

[TYPO3 wiki](https://typo3.org/go/exception/CMS/debug/1233058294)

#1233058294 InvalidArgumentException

    "PageRepository_groupAccessWhere_pages_fe_group_pages_0_-2_3_4_5_6_20_35_37_46_52_53_82_907_1017_1018_1020_1022_1110_1179_1671_1672_1673_1674_1675_1676_1677_1678_1679_1680_1681_1682_1683_1684_1685_1686_1687_1688_1689_1690_1691_1727_1775_1815_1817_1818_2103" is not a valid cache entry identifier.

    in /var/www/html/web/typo3/sysext/core/Classes/Cache/Frontend/VariableFrontend.php line 77

        public function get($entryIdentifier)
        {
            if (!$this->isValidEntryIdentifier($entryIdentifier)) {
                throw new \InvalidArgumentException(
                    '"' . $entryIdentifier . '" is not a valid cache entry identifier.',
                    1233058294
                );
            }

    at TYPO3\CMS\Core\Cache\Frontend\VariableFrontend->get('PageRepository_groupAccessWhere_pages_fe_group_pages_0_-2_3_4_5_6_20_35_37_46_52_53_82_907_1017_1018_1020_1022_1110_1179_1671_1672_1673_1674_1675_1676_1677_1678_1679_1680_1681_1682_1683_1684_1685_1686_1687_1688_1689_1690_1691_1727_1775_1815_1817_1818_2103')
    in /var/www/html/web/typo3/sysext/frontend/Classes/Page/PageRepository.php line 1711

            $memberGroups = $userAspect->getGroupIds();
            $cache = $this->getRuntimeCache();
            $cacheIdentifier = 'PageRepository_groupAccessWhere_' . str_replace('.', '_', $field) . '_' . $table . '_' . implode('_', $memberGroups);
'getMultipleGroupsWhereClause $cacheIdentifier');
            $cacheEntry = $cache->get($cacheIdentifier);
'getMultipleGroupsWhereClause $cacheEntry');
            if ($cacheEntry) {
                return $cacheEntry;
            }

    at TYPO3\CMS\Frontend\Page\PageRepository->getMultipleGroupsWhereClause('pages.fe_group', 'pages')
    in /var/www/html/web/typo3/sysext/frontend/Classes/Page/PageRepository.php line 218

            // Only set up the where clauses for pages when TCA is set. This usually happens only in tests.
            // Once all tests are written very well, this can be removed again
            if (isset($GLOBALS['TCA']['pages'])) {
                $this->init($this->context->getPropertyFromAspect('visibility', 'includeHiddenPages'));
                $this->where_groupAccess = $this->getMultipleGroupsWhereClause('pages.fe_group', 'pages');
                $this->sys_language_uid = (int)$this->context->getPropertyFromAspect('language', 'id', 0);
            }
        }

    at TYPO3\CMS\Frontend\Page\PageRepository->__construct(object(TYPO3\CMS\Core\Context\Context))
    in /var/www/html/web/typo3/sysext/core/Classes/Utility/GeneralUtility.php line 3689

            ) {
                return array_shift(self::$nonSingletonInstances[$finalClassName]);
            }
            // Create new instance and call constructor with parameters
            $instance = new $finalClassName(...$constructorArguments);
            // Register new singleton instance
            if ($instance instanceof SingletonInterface) {
                self::$singletonInstances[$finalClassName] = $instance;
            }

    at TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\Page\\PageRepository', object(TYPO3\CMS\Core\Context\Context))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php line 1418

            // Set the valid usergroups for FE
            $this->initUserGroups();
            // Initialize the PageRepository has to be done after the frontend usergroups are initialized / resolved, as
            // frontend group aspect is modified before
            $this->sys_page = GeneralUtility::makeInstance(PageRepository::class, $this->context);
            // If $this->id is a string, it's an alias
            $this->checkAndSetAlias();
            // The id and type is set to the integer-value - just to be sure...
            $this->id = (int)$this->id;

    at TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->fetch_the_id()
    in /var/www/html/web/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php line 1206

            if ($this->fePreview) {
                $this->disableCache();
            }
            // Now, get the id, validate access etc:
            $this->fetch_the_id();
            // Check if backend user has read access to this page. If not, recalculate the id.
            if ($this->isBackendUserLoggedIn() && $this->fePreview && !$this->getBackendUser()->doesUserHaveAccess($this->page, Permission::PAGE_SHOW)) {
                // Resetting
                $this->clear_preview();

    at TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->determineId()
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/PageResolver.php line 158

                    $this->checkAlternativeIdMethods($this->controller);
                }
            }

            $this->controller->determineId();

            // No access? Then remove user & Re-evaluate the page-id
            if ($this->controller->isBackendUserLoggedIn() && !$GLOBALS['BE_USER']->doesUserHaveAccess($this->controller->page, Permission::PAGE_SHOW)) {
                unset($GLOBALS['BE_USER']);

    at TYPO3\CMS\Frontend\Middleware\PageResolver->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/workspaces/Classes/Middleware/WorkspacePreview.php line 110

                // Caching is disabled, because otherwise generated URLs could include the ADMCMD_noBeUser parameter
                $GLOBALS['TSFE']->set_no_cache('GET Parameter ADMCMD_noBeUser was given', true);
            }

            $response = $handler->handle($request);

            // Add a info box to the frontend content
            if ($GLOBALS['TSFE']->doWorkspacePreview() && $GLOBALS['TSFE']->isOutputting()) {
                $previewInfo = $this->renderPreviewInfo($GLOBALS['TSFE'], $request->getAttribute('normalizedParams'));

    at TYPO3\CMS\Workspaces\Middleware\WorkspacePreview->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/PreviewSimulator.php line 62

                $simulatingGroup = $this->simulateUserGroup($request);
                $GLOBALS['TSFE']->fePreview = ((int)($simulatingDate || $simulatingGroup));
            }

            return $handler->handle($request);
        }

        /**
         * Simulate dates for preview functionality

    at TYPO3\CMS\Frontend\Middleware\PreviewSimulator->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/redirects/Classes/Http/Middleware/RedirectHandler.php line 70

                    return $response;
                }
            }

            return $handler->handle($request);
        }

        /**
         * Creates a PSR-7 compatible Response object

    at TYPO3\CMS\Redirects\Http\Middleware\RedirectHandler->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/StaticRouteResolver.php line 62

                    return new HtmlResponse($content, 200, ['Content-Type' => $contentType]);
                }
            }
            return $handler->handle($request);
        }

        /**
         * Find the proper configuration for the static route in the static route configuration. Mainly:

    at TYPO3\CMS\Frontend\Middleware\StaticRouteResolver->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/SiteBaseRedirectResolver.php line 86

                    $uri = $requestedUri->withPath(rtrim($requestedUri->getPath(), '/'));
                    return new RedirectResponse($uri, 307);
                }
            }
            return $handler->handle($request);
        }
        /**
         * Checks if the language is allowed in Frontend, if not, check if there is valid BE user
         *

    at TYPO3\CMS\Frontend\Middleware\SiteBaseRedirectResolver->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/adminpanel/Classes/Middleware/AdminPanelInitiator.php line 58

                $beUser = $GLOBALS['BE_USER'];
                $beUser->adminPanel = GeneralUtility::makeInstance(AdminPanelView::class);
                $beUser->extAdmEnabled = true;
            }
            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Adminpanel\Middleware\AdminPanelInitiator->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/SiteResolver.php line 68

            // At this point, we later get further route modifiers
            // for bw-compat we update $GLOBALS[TYPO3_REQUEST] to be used later in TSFE.
            $GLOBALS['TYPO3_REQUEST'] = $request;

            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Frontend\Middleware\SiteResolver->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/adminpanel/Classes/Middleware/SqlLogging.php line 49

                $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
                $connection = $connectionPool->getConnectionByName(ConnectionPool::DEFAULT_CONNECTION_NAME);
                $connection->getConfiguration()->setSQLLogger(GeneralUtility::makeInstance(DoctrineSqlLogger::class));
            }
            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Adminpanel\Middleware\SqlLogging->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/BackendUserAuthenticator.php line 95

                Bootstrap::loadExtTables();
                $this->setBackendUserAspect(GeneralUtility::makeInstance(Context::class), $GLOBALS['BE_USER']);
            }

            return $handler->handle($request);
        }

        /**
         * Creates the backend user object and returns it.

    at TYPO3\CMS\Frontend\Middleware\BackendUserAuthenticator->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/FrontendUserAuthenticator.php line 79

            // Register the frontend user as aspect
            $this->setFrontendUserAspect(GeneralUtility::makeInstance(Context::class), $frontendUser);

            return $handler->handle($request);
        }

        /**
         * It's possible to transfer a frontend user session via a GET/POST parameter 'FE_SESSION_KEY'.

    at TYPO3\CMS\Frontend\Middleware\FrontendUserAuthenticator->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/TypoScriptFrontendInitialization.php line 90

                    GeneralUtility::callUserFunction($_funcRef, $_params, $GLOBALS['TSFE']);
                }
            }

            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Frontend\Middleware\TypoScriptFrontendInitialization->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/EidHandler.php line 50

        {
            $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null;

            if ($eID === null) {
                return $handler->handle($request);
            }

            // Remove any output produced until now
            ob_clean();

    at TYPO3\CMS\Frontend\Middleware\EidHandler->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/PreprocessRequestHook.php line 57

                    $hookParameters = [];
                    GeneralUtility::callUserFunction($hookFunction, $hookParameters, $hookParameters);
                }
            }
            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Frontend\Middleware\PreprocessRequestHook->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/core/Classes/Middleware/NormalizedParamsAttribute.php line 58

            // refactored to have ServerRequest object available where it is needed. This global will be
            // deprecated then and removed.
            $GLOBALS['TYPO3_REQUEST'] = $request;

            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Core\Middleware\NormalizedParamsAttribute->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Middleware/TimeTrackerInitialization.php line 49

            );
            $timeTracker->start();
            $timeTracker->push('');

            return $handler->handle($request);
        }
    }

    at TYPO3\CMS\Frontend\Middleware\TimeTrackerInitialization->process(object(TYPO3\CMS\Core\Http\ServerRequest), object(class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 138

                    if (!$middleware instanceof MiddlewareInterface) {
                        throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                    }
                    return $middleware->process($request, $this->next);
                }
            };
        }
    }

    at class@anonymous/var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php0x7f2b731de056->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 67

         * @return ResponseInterface
         */
        public function handle(ServerRequestInterface $request): ResponseInterface
        {
            return $this->tip->handle($request);
        }

        /**
         * Seed the middleware stack with the inner request handler

    at TYPO3\CMS\Core\Http\MiddlewareDispatcher->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/AbstractApplication.php line 108

        {
            $requestHandler = GeneralUtility::makeInstance($this->requestHandler);
            $dispatcher = $this->createMiddlewareDispatcher($requestHandler);

            return $dispatcher->handle($request);
        }

        /**
         * Set up the application and shut it down afterwards

    at TYPO3\CMS\Core\Http\AbstractApplication->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/frontend/Classes/Http/Application.php line 69

            if (!$this->checkIfEssentialConfigurationExists()) {
                return $this->installToolRedirect();
            }
            $this->initializeContext();
            return parent::handle($request);
        }

        /**
         * Check if LocalConfiguration.php and PackageStates.php exist

    at TYPO3\CMS\Frontend\Http\Application->handle(object(TYPO3\CMS\Core\Http\ServerRequest))
    in /var/www/html/web/typo3/sysext/core/Classes/Http/AbstractApplication.php line 120

        final public function run(callable $execute = null)
        {
            try {
                $response = $this->handle(
                    \TYPO3\CMS\Core\Http\ServerRequestFactory::fromGlobals()
                );
                if ($execute !== null) {
                    call_user_func($execute);
                }

    at TYPO3\CMS\Core\Http\AbstractApplication->run()
    in /var/www/html/web/index.php line 24

    // Set up the application for the frontend
    call_user_func(function () {
        $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
        \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE);
        \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run();
    });

    at {closure}()
    in /var/www/html/web/index.php line 25

    call_user_func(function () {
        $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
        \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE);
        \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run();
    });

Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #91208: Performance issue in PageRepository for Mega MenusClosedStefan Froemken2020-04-27

Actions
Actions #1

Updated by Oliver Hader almost 4 years ago

  • Related to Bug #91208: Performance issue in PageRepository for Mega Menus added
Actions #2

Updated by Oliver Hader almost 4 years ago

  • Subject changed from #1233058294 InvalidArgumentException to InvalidArgumentException in PageRepository having too many user group ids
Actions #3

Updated by Gerrit Code Review almost 4 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/64512

Actions #4

Updated by Andreas Kienast almost 4 years ago

  • Target version set to 9.5.18 & 10.4.3
Actions #5

Updated by Gerrit Code Review almost 4 years ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/64512

Actions #6

Updated by Gerrit Code Review almost 4 years ago

Patch set 1 for branch 9.5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/64517

Actions #7

Updated by Andreas Fernandez almost 4 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #8

Updated by Benni Mack almost 4 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF