#mysql #transactions #typeorm #mysql2
#mysql #транзакции #typeorm #mysql2
Вопрос:
Я запускаю настройку с NestJS и Typeorm и MySQL 5.7 DB. В качестве драйвера мы используем mysql2.
Что-то вызывает события, когда одна часть логики запускается несколько раз в течение миллисекунд. В этой логике мы открываем следующую транзакцию:
await typeorm.getManager().transaction('READ UNCOMMITTED', async (entityManager) => {...});
Это отражается в журналах следующим образом:
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
query: SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
.
.
.
query: START TRANSACTION
query: START TRANSACTION
query: START TRANSACTION
query: START TRANSACTION
query: START TRANSACTION
query: START TRANSACTION
query: START TRANSACTION
query: START TRANSACTION
После запуска транзакций дальнейший код не выполняется. Нет журналов, нет ошибок, ничего. Транзакции не фиксируются, не прерываются и не откатываются.
Исследование возможных ограничений MySQL не помогло.
Есть предложения?
Комментарии:
1. Удалось ли вам решить эту проблему?
2. к сожалению, нет, мы только начали вводить некоторые таймауты…. худший взлом за всю историю.