Task #77443
closedMake "Page is being generated" configurable
0%
Description
The message "Page is being generated" still appears in TYPO3 7.6.10 after the page cache is cleared and concurrent page requests are made.
This should never be the case. Moreover, the hardcoded refresh time of 30s is not suitable either.
I suggest completely removing \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->tempPageCacheContent
and let the of the second request client wait until the page has been generated by the first request,
which will be the case since there is no "temporary content" in the database cache
and the lock for generating the page in the second request will be acquired as soon as the first request is processed, and subsequently the second request will retrieve the cached paged from the database.
See \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->getFromCache
public function getFromCache()
{
...
$row = $this->getFromCache_queryRow();
if (!is_array($row)) {
// nothing in the cache, we acquire an exclusive lock now
$this->acquireLock('pages', $lockHash);
//
// from this point on we're the only one working on that page ($lockHash)
//
// query the cache again to see if the data are there meanwhile
$row = $this->getFromCache_queryRow();
Therefore our very simple solution is to just remove the code in \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->tempPageCacheContent
public function tempPageCacheContent(){}
We have tested it and it works fine.
Moreover, I am not sure why the "accessLock" introduced in https://review.typo3.org/#/c/38840/ is necessary.
This lock is set regardless of the current page id being handled, and therefore temporarily blocks the concurrent page generation of different pages.