[commit-keeper sha=00b12cd] Отсутствие атомарности при сохранении версии #6
Reference in New Issue
Block a user
No description provided.
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?
Severity: major
Commit:
00b12cd— upd storeЗатронутые места:
service/version.goстроки 63–66В чём проблема
Отсутствие атомарности при создании новой версии и обновлении ссылки на последнюю версию документа. Операции
CreateVersionиUpdateLatestVersionвыполняются как два отдельных запроса к БД. Если приложение упадет между этими двумя вызовами, в базе данных появится «сиротская» версия, а документ будет ссылаться на старую версию, что нарушает целостность данных.Цитата кода
Как исправить
Вариант 1 — Использовать транзакцию БД для объединения обеих операций.
Обе операции должны быть обернуты в одну транзакцию, чтобы гарантировать, что либо обе выполнятся, либо ни одна из них.
Автоматическая проверка commit-keeper · модель
gemma4:31b·sha=00b12cd