Skip to content

Drag and drop of data object from Parent Object to Child Object causing Memory Leak with Circular Data Reference #159

Description

@benshen-secretlab

Affected Version

2026.1

Affected capability

Data Objects

Steps to reproduce

Discussion Topic: https://github.com/orgs/pimcore/discussions/19218

  1. Create Data Object with nested children
  2. Drag parent object into child object
  3. Refresh Data Object Tree
  4. UI show loading, server side PHP process CPU run at 100% and took up all the available memory.
  5. Data Indexing Messenger Crashed

Object Relation Reference Observation: object id 743 -> parent id 2 -> parent id 121 -> parent id 743
Tree Path: /PRODUCTS/Products/ITEMS/PRODUCTS/Products/ITEMS/% [Expected Path supposedly is /PRODUCTS/Products/ITEMS/%]

Actual Behavior

Server crash due to Circular Reference causing memory leak.
Need to restart server only able to tunnel into it.

Object Tree Refresh Endpoint:

  • the process does not apply any PHP Memory Limit causing it took up all the available server memory.

Supervisor Error Logs:

...
#1660178 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660179 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660180 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660181 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660182 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660183 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660184 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionAdapter/AbstractAdapter.php(97): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660185 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/SearchIndexAdapter/DefaultSearch/DataObject/FieldDefinitionService.php(81): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionAdapter\AbstractAdapter->getInheritedData()
#1660186 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/Serializer/Normalizer/DataObjectNormalizer.php(203): Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\FieldDefinitionService->getInheritedFieldData()
#1660187 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/Serializer/Normalizer/DataObjectNormalizer.php(166): Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\Normalizer\DataObjectNormalizer->getInheritedFields()
#1660188 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/Serializer/Normalizer/DataObjectNormalizer.php(96): Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\Normalizer\DataObjectNormalizer->normalizeStandardFields()
#1660189 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/Serializer/Normalizer/DataObjectNormalizer.php(63): Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\Normalizer\DataObjectNormalizer->normalizeDataObject()
#1660190 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/SearchIndex/IndexService/IndexService.php(127): Pimcore\Bundle\GenericDataIndexBundle\Service\Serializer\Normalizer\DataObjectNormalizer->normalize()
#1660191 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/SearchIndex/IndexService/IndexService.php(65): Pimcore\Bundle\GenericDataIndexBundle\Service\SearchIndex\IndexService\IndexService->getIndexData()
#1660192 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/SearchIndex/IndexQueueService.php(131): Pimcore\Bundle\GenericDataIndexBundle\Service\SearchIndex\IndexService\IndexService->updateIndexData()
#1660193 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/SearchIndex/IndexQueueService.php(195): Pimcore\Bundle\GenericDataIndexBundle\Service\SearchIndex\IndexQueueService->doHandleIndexData()
#1660194 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/Service/SearchIndex/IndexQueueService.php(106): Pimcore\Bundle\GenericDataIndexBundle\Service\SearchIndex\IndexQueueService->handleEntryByOperation()
#1660195 /var/www/html/pimcore_demo/vendor/pimcore/generic-data-index-bundle/src/MessageHandler/IndexUpdateQueueHandler.php(44): Pimcore\Bundle\GenericDataIndexBundle\Service\SearchIndex\IndexQueueService->handleIndexQueueEntries()
#1660196 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(148): Pimcore\Bundle\GenericDataIndexBundle\MessageHandler\IndexUpdateQueueHandler->__invoke()
#1660197 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(90): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->callHandler()
#1660198 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php(75): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->handle()
#1660199 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/DeduplicateMiddleware.php(28): Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle()
#1660200 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php(34): Symfony\Component\Messenger\Middleware\DeduplicateMiddleware->handle()
#1660201 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php(68): Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle()
#1660202 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php(41): Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle()
#1660203 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php(35): Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle()
#1660204 /var/www/html/pimcore_demo/vendor/symfony/messenger/Middleware/AddDefaultStampsMiddleware.php(33): Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle()
#1660205 /var/www/html/pimcore_demo/vendor/symfony/messenger/MessageBus.php(69): Symfony\Component\Messenger\Middleware\AddDefaultStampsMiddleware->handle()
#1660206 /var/www/html/pimcore_demo/vendor/symfony/messenger/RoutableMessageBus.php(51): Symfony\Component\Messenger\MessageBus->dispatch()
#1660207 /var/www/html/pimcore_demo/vendor/symfony/messenger/Worker.php(187): Symfony\Component\Messenger\RoutableMessageBus->dispatch()
#1660208 /var/www/html/pimcore_demo/vendor/symfony/messenger/Worker.php(126): Symfony\Component\Messenger\Worker->handleMessage()
#1660209 /var/www/html/pimcore_demo/vendor/symfony/messenger/Command/ConsumeMessagesCommand.php(283): Symfony\Component\Messenger\Worker->run()
#1660210 /var/www/html/pimcore_demo/vendor/symfony/console/Command/Command.php(341): Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute()
#1660211 /var/www/html/pimcore_demo/vendor/symfony/console/Application.php(1117): Symfony\Component\Console\Command\Command->run()
#1660212 /var/www/html/pimcore_demo/vendor/symfony/framework-bundle/Console/Application.php(123): Symfony\Component\Console\Application->doRunCommand()
#1660213 /var/www/html/pimcore_demo/vendor/symfony/console/Application.php(356): Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand()
#1660214 /var/www/html/pimcore_demo/vendor/symfony/framework-bundle/Console/Application.php(77): Symfony\Component\Console\Application->doRun()
#1660215 /var/www/html/pimcore_demo/vendor/symfony/console/Application.php(195): Symfony\Bundle\FrameworkBundle\Console\Application->doRun()
#1660216 /var/www/html/pimcore_demo/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\Component\Console\Application->run()
#1660217 /var/www/html/pimcore_demo/vendor/autoload_runtime.php(32): Symfony\Component\Runtime\Runner\Symfony\ConsoleApplicationRunner->run()
#1660218 /var/www/html/pimcore_demo/bin/console(19): require_once('...')
#1660219 {main}
14:23:38 CRITICAL  [php] Fatal Error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 262144 bytes) ["exception" => Symfony\Component\ErrorHandler\Error\OutOfMemoryError { …}]

In AbstractObject.php line 744:
                                                                               
  Error: Allowed memory size of 536870912 bytes exhausted (tried to allocate   
  262144 bytes)    

Expected Behavior

The system should promptly display a validation error message and block the drag action from being executed successfully.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Platform Version

    2026.1

    Affected capability

    Data Objects

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions