-
Notifications
You must be signed in to change notification settings - Fork 306
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 Report: Application deployment and AS startup takes more RAM (ever growing) and too long (more than twice the time it took on previous releases) #6554
Comments
Hello @eclcodeedocle, Thank you very much for submitting a bug report! Unfortunately, we are unable to assist in this particular case, due to two reasons: I am unable to run the reproducer provided (The following message from Maven when running the We are still open to work on this bug report if you can provide a clear reproducer that showcases the performance decay between Payara Community 6.2023.8 and the latest Community release. Thank you, |
Hello @felixif First of all, thank you for having a look at this. Regarding the error you find on the reproducer I expect it is related to the maven version. I tested it on maven 3.9.5 which uses the default maven EJB plugin version 3.2.1 which by default should build you an EJB version 3.0 instead of the 2.x your execution seems to be attempting. To make this requirement explicit I have added the EJB version 3.0 specification to the plugin configuration. On performance issues being only covered under Payara enterprise scope, that is pretty reasonable and we were kind of expecting that already. Still we are grateful for and appreciate any feedback from you, the organization, and all the Payara community members who may encounter this issue on their deployments and would like to contribute to its resolution. Thanks again :-) |
Greetings, |
Greetings, |
We are also facing this issue in 6.2024.1 |
Sorry @fabide , no progress yet on our side. But we haven't forgotten about it: We are implementing better startup checkpoints in our app; hopefully they will give some insight on this matter. I will keep this ticket updated with our findings, if any. |
Actually one finding, I almost forgot: Whatever is causing this slowdown / memory hogging in our app deployment is also present in the latest Payara Enterprise version we got for evaluation. |
@felixif Please reopen this. The leak is present in current Payara 6 master tree |
My team was able to verify this issue is caused by this change: 34153c8 |
I can confirm that reverting that commit 34153c8 on the 6.2023.11 release and the latest 6.2024.4 release resolves this issue |
Copied from #6731, relevant here: I did do a git bisect, which resulted in finding the offending commit: 34153c8. I further narrowed it down to this change in Jar entry loading:
adding this change to the 2023.10 release reproduces my issue perfectly. I tried a lot with this change, including using the new way of loading but changing the verify variable to true and the version hardcoded to 8:
Before this change, for some libraries such as BouncyCastle which are multirelease and signed libraries, the resulting classData byte[] would be different with the new way of loading. After this change, the resuting I could find no other differences in the code so I looked at the differences when doing a JFR recording for the application. The main difference in class calls was a significant increase in the amount of The back trace of this call (in two screenshots, due to diverging paths): I am not able to investigate further due to the intimate knowledge of Payara required to continue the investigation. I would appreciate some assistance. |
Hello @RInverid @lprimak @elcodedocle and @fabide, First of all apologies for not replying earlier. This issue has slipped through the cracks, being closed due to inactivity. Yesterday I discussed this issue with my team, and currently, there are two internal issues (FISH-8688 and FISH-8672) trying to address a couple of problems that might cause the performance drop in recent Payara builds. The internal issues focus on optimizing the MR-jar loading and the removal of classloader leaks, both being community contributions by @lprimak that are currently reviewed by our Engineering team. Still, they need to be tested and backported, so I am unable to say precisely when the fixes are going to be released This issue will remain open, and thank you for your reports and help in getting this bug fixed. Best regards, |
Brief Summary
Since Payara release 6.2023.9 we observe the application deployment time is at least twice as much as it was in 6.2023.8 and earlier versions. This includes the latest 6.2024.1 release.
We have tried to trace this performance regression and there seems to be no obvious reason for it:
We need a mitigation or fix to prevent the upgrade to the latest Payara release from severely impacting our instance deployment times.
We want to know:
Expected Outcome
Application deployment time remains approximately the same after upgrading from Payara 6.2023.8 to latest.
Current Outcome
Application deployment time more than doubles after upgrading from Payara 6.2023.8 to latest. No reason given in the logs. We do not know which component is causing the delay.
Reproducer
I wrote a reproducer deploying pretty much every Jakarta component we use (JAX-RS, JPA, @startup EJBs) packed on a single ear, but it only helped to discard those components, at least on a basic level: https://github.com/elcodedocle/payara-sscce/tree/latest
We'd appreciate any pointers on how to extend it to reproduce (Perhaps running a profiler during the startup of the affected application would be more helpful, for example?)
Operating System
Debian bookworm
JDK Version
Debian openjdk 17 JRE (17.0.10+7-1
deb12u1) / application built with target 11 on Debian openJDK 11.0.22+7-1deb11u1Payara Distribution
Payara Server Full Profile
The text was updated successfully, but these errors were encountered: