24 LockTimeout: Operation exceeded time limit waiting for a lock
MongoDBЧто это значит?
Операция превысила лимит времени при ожидании необходимой блокировки (например, на уровне базы данных/коллекции) и была прервана. Блокировку не удалось получить вовремя.
Почему возникает?
Долгая операция или команда DDL (например, конфликтующие административные операции над коллекцией) удерживает необходимую блокировку; интенсивная параллельная запись; либо операция, ограниченная maxTimeMS, истекает при ожидании блокировки. Встречается при конфликтующих операциях с индексами/коллекциями.
Как исправить
Найдите операцию, удерживающую блокировку: изучите активные и ожидающие операции с помощью db.currentOp(); при необходимости завершите её с помощью db.killOp(). Перенесите конфликтующие административные команды (построение индексов, collMod, compact) на часы низкой нагрузки. Делайте операции короткими и избегайте неоправданно длинных транзакций. При необходимости настройте maxTimeMS под нагрузку.
Ещё по этой СУБД
- 10107 NotWritablePrimarynot master / not writable primary
- 91 ShutdownInProgressThe server is in the process of shutting down
- 189 PrimarySteppedDownPrimary stepped down while operation was in progress
- 7 HostNotFoundCould not find host
- 175 QueryPlanKilledQuery plan killed during execution
- 11602 InterruptedDueToReplStateChangeOperation interrupted due to a replication state change
- 136 CappedPositionLostCapped collection position lost