Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0056788
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Retail Modules] Web POSmajoralways2024-10-15 14:042024-11-29 15:35
ReportermalsasuaView Statuspublic 
Assigned Tomeriem_azaf 
PrioritynormalResolutionopenFixed in Version
StatusscheduledFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned To
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0056788: Performance problem on KernelUtils.getModulesOrderedByDependency

Descriptionthe function getModulesOrderedByDependency in KernelUtils is not efficient:
https://gitlab.com/openbravo/product/openbravo/-/blob/release/24Q4/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java?ref_type=heads#L275 [^]

This function is executed for each login, and when a lot of logins are done simultaneously after restart tomcat, it could cause a performance issue
Steps To Reproducerestart tomcat and do multiple logins simultaneously
Proposed Solutionsimilar fix to
https://issues.openbravo.com/view.php?id=49546 [^]
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]

-  Notes
(0170525)
AugustoMauch (administrator)
2024-10-17 11:19

@Miguel, what you report is surprising because getModulesOrderedByDependency is caching the result, so even if it is executed often, it will only be costly once: https://gitlab.com/openbravo/product/openbravo/-/blob/master/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java#L252. [^]

Can you share with us the research that was done to determine getModulesOrderedByDependency is causing performance problems?
(0171137)
malsasua (developer)
2024-10-30 08:50

In the jstack, we saw dozens of threads halted during the process.

The issue occurred because Tomcat was restarted while the stores were open. As a result, when Tomcat started, a large number of login requests came in simultaneously.
(0172380)
malsasua (developer)
2024-11-21 09:06

Checked with platform team: The KernelUtils.getModulesOrderedByDependency function is cached during the first login.

Possible root cause: If the function takes a few minutes to execute and a significant number of login requests arrive simultaneously after a Tomcat restart, it could result in all threads waiting at this point.

Possible fix: Cache the result of the function when Tomcat starts. While this might slow down the Tomcat startup process, it could prevent thread blockage during login bursts.
(0172780)
hgbot (developer)
2024-11-29 15:35

Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/1464 [^]

- Issue History
Date Modified Username Field Change
2024-10-15 14:04 malsasua New Issue
2024-10-15 14:04 malsasua Assigned To => Retail
2024-10-15 14:04 malsasua Triggers an Emergency Pack => No
2024-10-15 17:07 malsasua Description Updated View Revisions
2024-10-15 17:07 malsasua Steps to Reproduce Updated View Revisions
2024-10-17 06:45 guillermogil Assigned To Retail => Triage Platform Base
2024-10-17 11:18 AugustoMauch Assigned To Triage Platform Base => malsasua
2024-10-17 11:19 AugustoMauch Note Added: 0170525
2024-10-17 11:20 AugustoMauch Status new => feedback
2024-10-30 08:50 malsasua Note Added: 0171136
2024-10-30 08:50 malsasua Note Deleted: 0171136
2024-10-30 08:50 malsasua Note Added: 0171137
2024-10-30 08:50 malsasua Status feedback => new
2024-11-18 12:04 guillermogil Assigned To malsasua => Triage Platform Base
2024-11-21 09:06 malsasua Note Added: 0172380
2024-11-29 12:23 AugustoMauch Status new => scheduled
2024-11-29 12:23 AugustoMauch Assigned To Triage Platform Base => meriem_azaf
2024-11-29 15:35 hgbot Note Added: 0172780


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker