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

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0038390
TypeCategorySeverityReproducibilityDate SubmittedLast Update
design defect[Retail Modules] Web POSminorhave not tried2018-04-17 13:022018-05-21 10:06
ReporteralostaleView Statuspublic 
Assigned Tomarvintm 
PrioritynormalResolutionfixedFixed in VersionRR18Q3
StatusclosedFix in branchFixed in SCM revision0e18b8cfd67f
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Toguilleaer
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0038390: request timeout is checked only after reading the whole request content

DescriptionWhile reading request content it is checked whether the request has timed out on after each line is read to stop processing if so (see 0037851).

In most of the cases (ie. LogClient) the whole content is represented as a single line, which makes this part of the fix useless as in practice it only will time out after reading the whole request content.
Steps To Reproduce1. Log in WebPOS
2. Simulate slow network by setting browser's network throttilng (set to something really slow)
3. Generate big log client to be sent, ie. execute:
  for (var i =0;i<500;i++) {
    var s = i + '-'
    for (var j=0; j<4096; j++) s += 'c'
    OB.warn(s)
  }
4. Wait till log client is sent to backend
  -> Check the request is detected as timed out only after the whole content is read
Proposed SolutionInstead of reading the request line by line, do it using a fixed buffer size to be able to check timeout in a more frequent basis.
TagsPerformance
Attached Files? file icon 38390.export [^] (2,878 bytes) 2018-04-17 13:08

- Relationships Relation Graph ] Dependency Graph ]
related to defect 0037851 closedmarvintm Request timeout should apply to the whole process, and not just the query 
related to defect 0038389 closedmarvintm DB connection unnecessarily retained while reading request contents 

-  Notes
(0103935)
alostale (manager)
2018-04-17 13:09

Attached proposed fix.

Pending to be tested, specially:

* Compare performance with previous implementation
* Ensure it works properly (ie. ensure encoding is correct, etc.)
(0104281)
hgbot (developer)
2018-05-04 13:10

Repository: erp/pmods/org.openbravo.mobile.core
Changeset: 0e18b8cfd67f408e753b45a207a081f24bc07c93
Author: Antonio Moreno <antonio.moreno <at> openbravo.com>
Date: Thu May 03 18:43:26 2018 +0200
URL: http://code.openbravo.com/erp/pmods/org.openbravo.mobile.core/rev/0e18b8cfd67f408e753b45a207a081f24bc07c93 [^]

fixed 38390: request timeout is checked after reading the whole request content

  * Now request is read in chunks of 4096 characters (this size is the same as the
    one that was already being used in Tomcat's CoyoteReader.readLine) instead of
    line by line.
  * After each chunk time out is checked.
  * Additionally, prevent generating debugging potentially big String if it's not
    going to be used.

---
M src/org/openbravo/mobile/core/process/WebServiceAuthenticatedServlet.java
---

- Issue History
Date Modified Username Field Change
2018-04-17 13:02 alostale New Issue
2018-04-17 13:02 alostale Assigned To => Retail
2018-04-17 13:02 alostale Triggers an Emergency Pack => No
2018-04-17 13:03 alostale Relationship added related to 0037851
2018-04-17 13:03 alostale Relationship added related to 0038389
2018-04-17 13:03 alostale Tag Attached: Performance
2018-04-17 13:08 alostale File Added: 38390.export
2018-04-17 13:09 alostale Note Added: 0103935
2018-05-04 13:10 hgbot Checkin
2018-05-04 13:10 hgbot Note Added: 0104281
2018-05-04 13:10 hgbot Status new => resolved
2018-05-04 13:10 hgbot Resolution open => fixed
2018-05-04 13:10 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.mobile.core/rev/0e18b8cfd67f408e753b45a207a081f24bc07c93 [^]
2018-05-04 15:25 marvintm Assigned To Retail => marvintm
2018-05-21 10:06 guilleaer Review Assigned To => guilleaer
2018-05-21 10:06 guilleaer Status resolved => closed
2018-05-21 10:06 guilleaer Fixed in Version => RR18Q3


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker