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

Navigation Container with OPCache creates infinite loop #16989

Open
wants to merge 1 commit into
base: 11.2
Choose a base branch
from

Conversation

jheimbach
Copy link
Contributor

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 load Pimcore\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.

Copy link

Review Checklist

  • Target branch (11.2 for bug fixes, others 11.x)
  • Tests (if it's testable code, there should be a test for it - get help)
  • Docs (every functionality needs to be documented, see here)
  • Migration incl. install.sql (e.g. if the database schema changes, ...)
  • Upgrade notes (deprecations, important information, migration hints, ...)
  • Label
  • Milestone

Copy link

sonarcloud bot commented Apr 25, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

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

Successfully merging this pull request may close these issues.

None yet

2 participants