Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 2.0-RC3
-
Fix Version/s: 2.0.4
-
Component/s: Persistence
-
Environment:MBP
OS X 10.6
Description
There seems to be a change in the way locks and/or transactions work when handling concurrent requests.
I've created a test app (Bank Of Grails) to demonstrate the issue on both Grails 1.3.7 and Grails 2.0.0.RCx.
You will need Apache Bench (AB) to test them
You can get the code from github:
https://github.com/domiko/bog200 for Grails 2.0.0
https://github.com/domiko/bog137 for Grails 1.3.7
Non-generated code is identical in both versions.
Build the projects and run
ab -n 1000 -c 100 http://localhost:8080/bog200/teller/randomTransfer
OR
ab -n 1000 -c 100 http://localhost:8080/bog137/teller/randomTransfer
The 1.3.7 version works while the 2.0.0 version throws StaleObjectStateException exceptions.
Rgds,
Dominique.
Issue Links
- relates to
-
GRAILS-8879
Spring and Hibernate minor version updgrades
-
Forgot to mention, the projects also require MySQL with a database named bog.