Skip to content
Snippets Groups Projects
user avatar
Sascha Nowak authored
The cache_treelist handling in PageRepository is broken
for a long time already: Entries are get() with an expiry
time that is not properly set(), so get() is never
successful.
There is a second bug in getDescendantPageIdsRecursive()
cache handling: get() is done without BE user restriction,
but set() is only done when no BE user is logged in. This
way, non-BE user state could swap into BE user state, *if*
the cache would work.

The patch avoids reading and writing the cache instead
of fixing cache access: We can not risk bugs in v12 if
the cache would suddenly start working but has side effects:
Issues like that would be hard to find, hard to report,
and have severe impact on FE rendering.

Note typical use case of the method are the "menu" content
elements, plus the extbase 'starting point' logic. So its
not the menu rendering in general - we would otherwise have
most likely found the broken cache much earlier.

The patch effectively increases performance since the
get() and set() queries are gone.

Resolves: #103139
Releases: main, 12.4
Change-Id: Icc8d13b583f77d6ffc186d391d46d6830ee50889
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83023


Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
b04415d6
Name Last commit Last update
..
sysext