Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Memory leak with hidden/extendToSubtree changes #4138

Open
dreistromlandMf opened this issue Aug 22, 2024 · 0 comments
Open

[BUG] Memory leak with hidden/extendToSubtree changes #4138

dreistromlandMf opened this issue Aug 22, 2024 · 0 comments

Comments

@dreistromlandMf
Copy link

dreistromlandMf commented Aug 22, 2024

Describe the bug

Various changes to hidden and extendToSubtree will cause all child pages to be queued for updating.

In the process of queuing, a TSFE is being built and cached for each page added to the queue. This TSFE exceeds an average of over a megabyte per cached entry in our site, so with a sufficient amount of pages this will consume considerable amounts of memory and possibly die by exceeding memory limits.

To Reproduce
Steps to reproduce the behavior:

  1. Create a page with a large amount of (recursive) children.
  2. Switch the hidden flag off with extendToSubtree enabled.
  3. Observe high memory consumption

Expected behavior
Changing those page properties does not cause excessive memory usage.

Screenshots

Disabeling hidden while having extendToSubtree enabled. Other combinations should also work.

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 8388608 bytes) (memprof dumped to /var/www/dsl/memprof.callgrind.1808118700353951) in /var/www/dsl/vendor/typo3/cms-core/Classes/TypoScript/Tokenizer/LossyTokenizer.php on line 640

Used versions (please complete the following information):

  • TYPO3 Version: 12.4.3
  • Browser: firefox
  • EXT:solr Version: 12.0.3
  • Used Apache Solr Version: Docker Image typo3solr/ext-solr:12.0
  • PHP Version: 8.3.10
  • MySQL Version: mariadb:10.3 (v. Docker)

Additional context

A zip file containing memory allocations taken with https://github.com/arnaud-lb/php-memory-profiler at the time of an out-of-memory in callgrind format: memprof.callgrind.1808118700353951.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant