Details
-
Improvement
-
Resolution: Unresolved
-
High
-
5.4.5
-
None
Description
It's possible that the user-info-cache is expiring more than once in one process. There is no check, if it's expired already.
So, there should be one place where the cache is expiring and there should be a check if it's already expired.
- User case:
If you have a large system with 10+ newspapers, async publisher running, various news importer running and you are publishing at least 200 objects / hour, the user info cache is not stable.
So, it can happen that the user info cache is expiring more than once within a process (moving content, publishing content, add location / remove location etc.)
The reason for this this: The different code places don't know each other.
Current behavior:
The `user-info-cache` can expire in many places.
- `eZCache::clearUserInfoCache()` - `ezpublish_legacy/kernel/classes/ezcache.php`
- `eZRole::revertFromTemporaryVersion()` - `ezpublish_legacy/kernel/classes/ezrole.php`
- `eZUser::userInfoExpiry()` - `ezpublish_legacy/kernel/classes/datatypes/ezuser/ezuser.php`
- `eZUser::cleanupCache()` - `ezpublish_legacy/kernel/classes/datatypes/ezuser/ezuser.php`
Desired behavior:
Only one place where the user info cache is expiring and if the user info cache is expired already, don't expire it again.