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

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0034516
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Retail Modules] Web POSmajoralways2016-11-15 10:152016-12-22 14:36
ReportercaristuView Statuspublic 
Assigned Tomarvintm 
PriorityhighResolutionfixedFixed in VersionRR17Q1
StatusclosedFix in branchFixed in SCM revisionebb293ead59b
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

0034516: [clustering] associateMasterSlave in UpdateCashup is locked just at JVM level

DescriptionThe associateMasterSlave method invoked from getAndUpdateCashUp in UpdateCashup is a synchronized method. This means that the process has been designed to prevent its execution by different threads in parallel.

In a clustered environment the previous assumption is not guaranteed, as the synchronized method is preventing concurrent executions within the same JVM.

Therefore it could be possible to execute this process in parallel by different threads which belong to different nodes of a clustered environment.
Steps To ReproduceIn description
Tagsclustering
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
blocks design defect 0034490 acknowledgedTriage Platform Base Openbravo ERP [clustering] Support clustering 

-  Notes
(0092089)
hgbot (developer)
2016-12-05 12:47

Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: ebb293ead59bc6ecc582b44eac54e0b8ae2711a2
Author: Antonio Moreno <antonio.moreno <at> openbravo.com>
Date: Mon Dec 05 12:47:30 2016 +0100
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/ebb293ead59bc6ecc582b44eac54e0b8ae2711a2 [^]

Fixed issue 34516. Do not rely on synchronized flag to resolve potential race condition.
- When using shared payment methods, the cashups need to be associated forming a hierarchy. Before the change, to resolve potential race condition problems when master and slave terminals where logging in the system in parallel, the synchronized keyword was used. This ensured that cashups were generated sequentially, which ensured in turn that either master or slave cashups were found by the associating queries, and the hierarchy was always formed.
However, this doesn't work in an environment with clustering. To resolve this problem, the synchronized keyword has been removed, which means that now if terminals log at the same time, it is possible that cashups may be created and the hierarchy may still not be formed. However, this is not a problem, as the online requests which are done when the user accesses the Cashup window either in slave or in master terminals have also been modified, so that the association is formed at this point if it doesn't exist. This means that the hierarchy will always be formed when accessing the cashup window, even if it was not originally formed when logging in the system.

---
M src/org/openbravo/retail/posterminal/ProcessCashCloseMaster.java
M src/org/openbravo/retail/posterminal/ProcessCashCloseSlave.java
M src/org/openbravo/retail/posterminal/UpdateCashup.java
---
(0092169)
hgbot (developer)
2016-12-07 11:06

Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: 1e03d28480348c5f47398d8ac56f9d7dee22b5bd
Author: Antonio Moreno <antonio.moreno <at> openbravo.com>
Date: Wed Dec 07 11:05:58 2016 +0100
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/1e03d28480348c5f47398d8ac56f9d7dee22b5bd [^]

Related to issue 34516. Replace refresh by evict+get, to avoid potential performance issues. Force refresh also on master flow

---
M src/org/openbravo/retail/posterminal/ProcessCashCloseMaster.java
M src/org/openbravo/retail/posterminal/ProcessCashCloseSlave.java
---
(0092943)
hgbot (developer)
2016-12-22 13:58

Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: 9e336a10baa509104e596c9dd27ccee07fce84b5
Author: Antonio Moreno <antonio.moreno <at> openbravo.com>
Date: Thu Dec 22 13:58:06 2016 +0100
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/9e336a10baa509104e596c9dd27ccee07fce84b5 [^]

Related to issue 34516. Remove unnecessary refresh. Use already existing variable.

---
M src/org/openbravo/retail/posterminal/ProcessCashCloseMaster.java
M src/org/openbravo/retail/posterminal/ProcessCashCloseSlave.java
---

- Issue History
Date Modified Username Field Change
2016-11-15 10:15 caristu New Issue
2016-11-15 10:15 caristu Assigned To => Retail
2016-11-15 10:15 caristu Triggers an Emergency Pack => No
2016-11-15 10:16 caristu Relationship added blocks 0034513
2016-11-15 10:16 caristu Relationship deleted blocks 0034513
2016-11-15 10:16 caristu Relationship added blocks 0034490
2016-11-15 11:14 caristu Tag Attached: clustering
2016-11-17 11:51 alostale Severity minor => major
2016-12-05 12:47 hgbot Checkin
2016-12-05 12:47 hgbot Note Added: 0092089
2016-12-05 12:47 hgbot Status new => resolved
2016-12-05 12:47 hgbot Resolution open => fixed
2016-12-05 12:47 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/ebb293ead59bc6ecc582b44eac54e0b8ae2711a2 [^]
2016-12-07 11:06 hgbot Checkin
2016-12-07 11:06 hgbot Note Added: 0092169
2016-12-09 12:53 marvintm Assigned To Retail => marvintm
2016-12-22 13:58 hgbot Checkin
2016-12-22 13:58 hgbot Note Added: 0092943
2016-12-22 14:36 guilleaer Review Assigned To => guilleaer
2016-12-22 14:36 guilleaer Status resolved => closed
2016-12-22 14:36 guilleaer Fixed in Version => RR17Q1


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker