Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||||||
ID | ||||||||||||
0027733 | ||||||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
defect | [Openbravo ERP] 04. Warehouse management | minor | sometimes | 2014-10-02 07:57 | 2014-10-02 07:58 | |||||||
Reporter | alostale | View Status | public | |||||||||
Assigned To | dmiguelez | |||||||||||
Priority | normal | Resolution | open | Fixed in Version | ||||||||
Status | new | 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 | |||||||||||
Merge Request Status | ||||||||||||
Review Assigned To | ||||||||||||
OBNetwork customer | No | |||||||||||
Web browser | ||||||||||||
Modules | Core | |||||||||||
Support ticket | ||||||||||||
Regression level | ||||||||||||
Regression date | ||||||||||||
Regression introduced in release | ||||||||||||
Regression introduced by commit | ||||||||||||
Triggers an Emergency Pack | No | |||||||||||
Summary | 0027733: M_InOut post allows modifications while the document is being processed | |||||||||||
Description | Looking at the code in M_InOut_Post it: 1. executes a number of validations 2. locks header and lines (select for update) to process them In case while execution of step 2, another session tries to do modifications on the document (header or lines) that is being processed, as it is locked, will wait till process finishes, and they will fail at this moment because it is not allowed to change a processed document. But if concurrent document modification occurs while step 1 is in execution, as there is no lock yet, it will be allowed. This can end up in uncontrolled situations, ie. it is possible one of the checks that were already satisfied to be broken by the new modifications which won't be checked again so the document will be finally processed in this inconsistent state. | |||||||||||
Steps To Reproduce | I couldn't reproduce it in a real use case. 1 Create a shipment/receipt with big number of lines 2 Process it 3 In another browser session open it and try to modify its lines while process is still in validations step | |||||||||||
Proposed Solution | Move the select for updates to the beginning of the process so document is locked since the beginning warranting validations are done against the same data the actual process is done. Review other document processes (C_order_Post, C_Invoice_Post...) to find the same pattern. | |||||||||||
Tags | No tags attached. | |||||||||||
Attached Files | ||||||||||||
![]() |
||||||||
|
![]() |
|||
Date Modified | Username | Field | Change |
2014-10-02 07:57 | alostale | New Issue | |
2014-10-02 07:57 | alostale | Assigned To | => dmiguelez |
2014-10-02 07:57 | alostale | OBNetwork customer | => No |
2014-10-02 07:57 | alostale | Modules | => Core |
2014-10-02 07:57 | alostale | Triggers an Emergency Pack | => No |
2014-10-02 07:58 | alostale | Relationship added | related to 0027713 |
Copyright © 2000 - 2009 MantisBT Group |