Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Concurrent checkouts can cause stock to go below 0 when stock control is enabled. #403
When two customers check out concurrently for the same product, both checkouts may succeed, and this causes the total amount of stock adjustments to be larger than the quantity in inventory.
Steps to reproduce:
We have reproduced this behavior on a single machine, by performing the above steps with one customer in one browser window and another customer in a second browser window with a short communication delay (100 ms) between the database and application. If connecting to the database using unix sockets, the following script can act as a proxy that delays packets: