Openbravo Issue Tracking System - Openbravo ERP | ||||||||||||||||||||||||||
View Issue Details | ||||||||||||||||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | |||||||||||||||||||||
0036559 | Openbravo ERP | A. Platform | public | 2017-08-01 09:02 | 2017-09-18 18:23 | |||||||||||||||||||||
Reporter | aferraz | |||||||||||||||||||||||||
Assigned To | alostale | |||||||||||||||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | |||||||||||||||||||||
Status | closed | Resolution | fixed | |||||||||||||||||||||||
Platform | OS | 5 | OS Version | |||||||||||||||||||||||
Product Version | ||||||||||||||||||||||||||
Target Version | Fixed in Version | 3.0PR17Q4 | ||||||||||||||||||||||||
Merge Request Status | ||||||||||||||||||||||||||
Review Assigned To | alostale | |||||||||||||||||||||||||
OBNetwork customer | ||||||||||||||||||||||||||
Web browser | ||||||||||||||||||||||||||
Modules | Core | |||||||||||||||||||||||||
Support ticket | ||||||||||||||||||||||||||
Regression level | ||||||||||||||||||||||||||
Regression date | ||||||||||||||||||||||||||
Regression introduced in release | ||||||||||||||||||||||||||
Regression introduced by commit | ||||||||||||||||||||||||||
Triggers an Emergency Pack | No | |||||||||||||||||||||||||
Summary | 0036559: Old callouts should be refactored to implement SimpleCallout | |||||||||||||||||||||||||
Description | Callouts that do not extend SimpleCallout are defined as Servlets (as this is how 2.50 technology worked), they executed as follows: 1. A fake request is created to invoke them as a Servlet 2. That request is used to write the response in as a String representing JavaSript code 3. That string is evaluated, parsed and executed as JavaScript in server 4. To finally set the values it requires In addition to all the overhead involved in each of the steps described above, step 3 generates bytecodes from JavaScript that are stored in PermGen memory space. This causes excessive PermGen consumption as well as it trigger Major GC Collections even with a low heap use. All these steps are avoided for SimpleCallout since PR16Q4 0032366 | |||||||||||||||||||||||||
Steps To Reproduce | To emulate it: 1. Apply attached diff that executes step 3 defined in description 2K times per callout 2. Limit PermGen (ie. 160MB) and monitor JVM 3. Open Sales Order window and click on new (this executes SL_Order_DocType and SL_Order_PriceList callouts) -> Check JVM graphs during execution (see attached image): * PermGen rapidly increases * This is caused to a big number of classes loaded * Finally, major GC collection cycles are triggered To detect wrong callouts, apply detect-callouts.diff and execute ClassLoaderTest. This is the list of 10 Platform callouts obtained in current pi: - SL_IsDefault - SL_Column - SL_AlertRule_SQL - FixedValueExpressionCallout - Activation_Message - SL_ModuleCallout - SL_Module_Minor_Version - SL_TableAudit - DefaultExpressionCallout - SelectorFieldPropertyCallout | |||||||||||||||||||||||||
Proposed Solution | ||||||||||||||||||||||||||
Additional Information | ||||||||||||||||||||||||||
Tags | No tags attached. | |||||||||||||||||||||||||
Relationships |
| |||||||||||||||||||||||||
Attached Files | 36559.diff (47,853) 2017-08-01 10:00 https://issues.openbravo.com/file_download.php?file_id=10938&type=bug | |||||||||||||||||||||||||
Issue History | ||||||||||||||||||||||||||
Date Modified | Username | Field | Change | |||||||||||||||||||||||
2017-08-01 09:02 | aferraz | New Issue | ||||||||||||||||||||||||
2017-08-01 09:02 | aferraz | Assigned To | => platform | |||||||||||||||||||||||
2017-08-01 09:02 | aferraz | Modules | => Core | |||||||||||||||||||||||
2017-08-01 09:02 | aferraz | Triggers an Emergency Pack | => No | |||||||||||||||||||||||
2017-08-01 09:03 | aferraz | Relationship added | related to 0036067 | |||||||||||||||||||||||
2017-08-01 10:00 | aferraz | File Added: 36559.diff | ||||||||||||||||||||||||
2017-08-04 09:41 | alostale | Relationship added | depends on 0036599 | |||||||||||||||||||||||
2017-08-04 09:44 | hgbot | Checkin | ||||||||||||||||||||||||
2017-08-04 09:44 | hgbot | Note Added: 0098384 | ||||||||||||||||||||||||
2017-08-04 09:44 | hgbot | Status | new => resolved | |||||||||||||||||||||||
2017-08-04 09:44 | hgbot | Resolution | open => fixed | |||||||||||||||||||||||
2017-08-04 09:44 | hgbot | Fixed in SCM revision | => http://code.openbravo.com/erp/devel/pi/rev/b12d3da979dfb34ae678e7033cb0c4af8ec93398 [^] | |||||||||||||||||||||||
2017-08-04 09:46 | alostale | Assigned To | platform => alostale | |||||||||||||||||||||||
2017-08-04 09:47 | alostale | Review Assigned To | => alostale | |||||||||||||||||||||||
2017-08-04 09:47 | alostale | Note Added: 0098386 | ||||||||||||||||||||||||
2017-08-04 09:47 | alostale | Status | resolved => closed | |||||||||||||||||||||||
2017-08-04 09:47 | alostale | Fixed in Version | => 3.0PR17Q4 | |||||||||||||||||||||||
2017-09-18 18:23 | caristu | Relationship added | related to 0036882 |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|