-
Notifications
You must be signed in to change notification settings - Fork 9.4k
Avoid lots of uncessary exceptions during layout XML merge loading #37570
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
base: 2.4-develop
Are you sure you want to change the base?
Conversation
* Introduce a new function (for B/C compat we don't overwrite the protected _loadXmlString) to load and not throw an exception * Use it in extract handlers -> no need to catch the exception any more Reason: When using tools like Sentry, because of there inner workings, such exceptions still might be reported. While this is not exactly the root cause, it's always cleaner to not throw an exception and immediately catch it, if invalid cases can happen often. This might even improve performance a bit and improves developer's experience.
Hi @amenk. Thank you for your contribution! Add the comment under your pull request to deploy test or vanilla Magento instance:
❗ Automated tests can be triggered manually with an appropriate comment:
Allowed build names are:
You can find more information about the builds here For more details, review the Code Contributions documentation. |
@magento run all tests |
The requested builds are added to the queue. You should be able to see them here within a few minutes. Please message the #magento-devops slack channel if they don't show in a reasonable amount of time and a representative will look into any issues. |
@magento run all tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @amenk,
Thanks for the contribution!
Please fix the failed static test and also let us know if we can reproduce this original issue without using any 3rd party extensions.
Also please let us know which kind of exceptions are not generating after this fix.
Thanks
Almost two years later I am a bit out of context of this. The issue was mostly visible with the sentry plugin. Feel free to take over and fix the static tests ... :-) Thank you! |
Hi @amenk , We attempted to reproduce the exception in Magento by applying some code level tweaks. We observed that $this->updates[] property used in extractHandlers() method was consistently returning empty array[]. This is because initially it is set as empty and not getting updated anywhere prior to the extractHandlers() call. To simulate the issue we pushed some invalid xml into $this->updates[] and verified the behaviour against the changes introduced in the PR. On Magento 2.4-develop (Before applying the PR changes) We encountered the following exception: ![]() After PR changes there were no exceptions were observed. However, since _loadXmlString is invoked in multiple places in the file, there is possibility that similar exception could arise in other scenarios in the future. However changes in the PR looks good to avoid the unnecessary exceptions during xml merge loading hence we can proceed with the PR. I am taking care of the failing static test cases. Thank you! |
@magento run all tests |
@magento create issue |
@engcom-Hotel I have fixed static test cases. Could you please review it? Thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@magento run all tests |
@engcom-Hotel suggested changes has been made hence moving this back to pending review. could you please reviwe it once ? |
@magento run all tests |
@magento run all tests |
@amenk Thank you for the contirbution & collaboration! ✔️ QA PassedPreconditions: Steps to reproduce: Before: ❌ ![]() After: ✔️ No warnings & error were logged/observed after switching to the PR Branch. Build is Green hence moving this PR in Merge in Progress |
@engcom-Dash Thank you for finalizing this! |
Description
Related Pull Requests
See also: justbetter/magento2-sentry#113
Fixed Issues (if relevant)
No magento issue created.
Manual testing scenarios (*)
Reason
When using tools like Sentry, because of there inner workings, such exceptions still might be reported. While this is not exactly the root cause, it's always cleaner to not throw an exception and immediately catch it, if invalid cases can happen often.
This might even improve performance a bit and improves developer's experience.
Remarks
There seems some invalid XML at that place in the code happen quite often - it might be also interesting to check if that can be avoided.
This is a simple, trivial change to the code and should not break anything, so hopefully this can get triaged quickly and without to much back-and-forth about the testing procedure :-)
Contribution checklist (*)
Resolved issues: