Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||||||
ID | ||||||||||||
0056788 | ||||||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
defect | [Retail Modules] Web POS | major | always | 2024-10-15 14:04 | 2024-11-29 15:35 | |||||||
Reporter | malsasua | View Status | public | |||||||||
Assigned To | meriem_azaf | |||||||||||
Priority | normal | Resolution | open | Fixed in Version | ||||||||
Status | scheduled | Fix in branch | Fixed in SCM revision | |||||||||
Projection | none | ETA | none | Target Version | ||||||||
OS | Any | Database | Any | Java version | ||||||||
OS Version | Database version | Ant version | ||||||||||
Product Version | SCM revision | |||||||||||
Review Assigned To | ||||||||||||
Regression level | ||||||||||||
Regression date | ||||||||||||
Regression introduced in release | ||||||||||||
Regression introduced by commit | ||||||||||||
Triggers an Emergency Pack | No | |||||||||||
Summary | 0056788: Performance problem on KernelUtils.getModulesOrderedByDependency | |||||||||||
Description | the 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 Reproduce | restart tomcat and do multiple logins simultaneously | |||||||||||
Proposed Solution | similar fix to https://issues.openbravo.com/view.php?id=49546 [^] | |||||||||||
Tags | No 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 |