Сохраняется нерабочее состояние БД при аварийной остановке сервера во время выполнения api/users/confirmForemanRequest #55
Labels
bug
Something isn't working
Projects
Проблема
Если на середине операции confirmForemanRequest сервер по какой-то причине падает, то в БД сохраняется промежуточное состояние, когда половина копников получила нового старшину, другая нет. Это приводит к тому что копное дерево становится нерабочим. Например не работают операции выбора и отмены старшин.
Как повторить
Загрузить БД с 160к копников и связей
Самым старшин копником П, у которого +160к силы, выбрать старшину С
Подтвердить старшиной С выбор копника П
Через 5 секунд остановить сервер
Что ожидалось
Ожидалось, что частичные изменения, которые успели сделаться за 5 секунд, не будут сохранены, и БД останется в таком состоянии, как до начала операции.
Что получилось
Получилось, что частичные изменения в БД сохранились. БД в таком случае стала в промежуточном непонятном состоянии между тем, какой она была до начала операции и тем, какой она должна была стать после полного завершения операции.
Предложение
Обернуть каждый роут в Копнике в отдельную транзакцию, включая и этот роут.
The text was updated successfully, but these errors were encountered: