Files
portal/app/app/Http/Controllers
Дмитрий 8a8783df4a fix(биллинг): повышение лимита проекта — evaluate+запись под lockForUpdate(Tenant)
По итогам финального ревью: путь повышения дневного лимита в ProjectController@update
прогонял балансовый гейт и писал новый лимит БЕЗ замка на тенанта (в отличие от
create/setActive). Две параллельные правки лимита одного тенанта могли обе пройти
гейт и суммарно превысить ёмкость баланса (TOCTOU). Обёрнуто в DB::transaction +
Tenant::lockForUpdate() при повышении лимита — evaluate и запись под одним локом.

UpdateLimitGateTest 3/3.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 12:21:17 +03:00
..