[commit-keeper sha=488f11b] Отсутствие атомарности при создании snapshot-версии #2
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:
488f11b— alphaЗатронутые места:
service/version.goстроки 135–156В чём проблема
Отсутствие атомарности при создании snapshot-версии. Операции CreateVersion и UpdateLatestVersion выполняются без транзакции. Если вторая операция завершится ошибкой, в базе останется 'сиротская' версия, а документ будет ссылаться на старую версию, что нарушает консистентность данных.
Цитата кода
Как исправить
Вариант 1 — Обернуть операции в транзакцию на уровне хранилища или сервиса.
Необходимо добавить метод в IVersionStorage для выполнения операций в рамках одной транзакции, либо передавать объект транзакции в методы.
Автоматическая проверка commit-keeper · модель
gemma4:31b·sha=488f11b