Обернуть покупку в транзакцию (race condition) #75
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
purchaseService.js:45-108— баланс проверяется и списывается безBEGIN TRANSACTION. При параллельных покупках возможен double-spend.Решение
BEGIN IMMEDIATE TRANSACTION/COMMIT/ROLLBACKUPDATE ... WHERE quantity_in_stock >= ?для атомарного списанияПриоритет: КРИТИЧЕСКИЙ