возникает ошибка луа/тарантула
есть код
box.begin()
some_func()
box.commit()
если в some_func() возникает ошибка, то box.commit() не делается и транзакция остается висеть открытой, как следствие, следующий вызов box.begin() завершается с ошибкой
если ли какой-то способ обработки такого случая? у меня есть только идея оборачивать все в pcall, и в случае ошибки руками дергать box.rollback(), но попахивает лишним оверхедом...
pcall в качестве except
https://github.com/tarantool/tarantool/issues/3318
box.atomic
Обсуждают сегодня