Navigation Container with OPCache creates infinite loop #16989
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes in this pull request
Resolves #15970
Additional info
As far as i could debug the issue, the problem lays in the inheritance structure and class loading.
The DebugClassLoader tries to load
Pimcore\Navigation\Container
, because of: this functionaility it loads all returnTypes, which in turn has to loadPimcore\Navigation\Page
... which tries to load its parent\Pimcore\Navigation\Container
... which is not finished loading yet, and the cycle continues.I am not 100% certain that this is what happens... because the Debugger cannot help here either :-D
Nevertheless, when I switch the return type of
getChildren
to?static
(or?self
), the issue is no longer present and the class can load every time.As far as i checked, the change of return type should not effect calls to the method, because we already getting the same Objects back as before.