Когда я запускаю свои тесты на CircleCI, он регистрирует следующее сообщение много раз, и в конечном итоге тесты не проходят, потому что ни один из методов базы данных не может извлечь данные из-за взаимоблокировок:
{
"message": "Error running raw sql query in pool.",
"stack": "error: deadlock detected\n at Connection.Object.<anonymous>.Connection.parseE (/home/circleci/backend/node_modules/pg/lib/connection.js:567:11)\n at Connection.Object.<anonymous>.Connection.parseMessage (/home/circleci/-backend/node_modules/pg/lib/connection.js:391:17)\n at Socket.<anonymous> (/home/circleci/backend/node_modules/pg/lib/connection.js:129:22)\n at emitOne (events.js:116:13)\n at Socket.emit (events.js:211:7)\n at addChunk (_stream_readable.js:263:12)\n at readableAddChunk (_stream_readable.js:250:11)\n at Socket.Readable.push (_stream_readable.js:208:10)\n at TCP.onread (net.js:597:20)",
"name": "error",
"length": 316,
"severity": "ERROR",
"code": "40P01",
"detail": "Process 1000 waits for AccessExclusiveLock on relation 17925 of database 16384; blocked by process 986.\nProcess 986 waits for RowShareLock on relation 17870 of database 16384; blocked by process 1000.",
"hint": "See server log for query details.",
"file": "deadlock.c",
"line": "1140",
"routine": "DeadLockReport",
"level": "error",
"timestamp": "2018-10-15T20:54:29.221Z"
}
Этокоманда теста, которую я запускаю: jest --logHeapUsage --forceExit --runInBand
- Я также попробовал это:
jest --logHeapUsage --forceExit --maxWorkers=2
Практически все тесты выполняют какую-то функцию базы данных.Эта проблема только начала возникать, когда мы добавили больше тестов.У кого-нибудь еще была такая же проблема?