24 LockTimeout: Operation exceeded time limit waiting for a lock (la operación superó el límite de tiempo esperando un bloqueo)
MongoDB¿Qué significa?
Una operación superó su límite de tiempo mientras esperaba un bloqueo necesario (p. ej., a nivel de base de datos/colección) y se abortó. No se pudo obtener el bloqueo a tiempo.
¿Por qué ocurre?
Una operación de larga duración o un comando DDL (p. ej., operaciones administrativas en conflicto sobre una colección) mantiene el bloqueo necesario; escrituras concurrentes intensas; o una operación limitada por maxTimeMS caduca mientras espera un bloqueo. Se ve con operaciones de índices/colecciones en conflicto.
Cómo solucionarlo
Busque la operación que mantiene el bloqueo: inspeccione las operaciones activas y en espera con db.currentOp(); termínela con db.killOp() si es necesario. Mueva los comandos administrativos en conflicto (creación de índices, collMod, compact) a horas valle. Mantenga las operaciones cortas y evite transacciones innecesariamente largas. Si es necesario, ajuste maxTimeMS a la carga.
Más entradas de este motor
- 10107 NotWritablePrimarynot master / not writable primary
- 91 ShutdownInProgressThe server is in the process of shutting down (el servidor se está apagando)
- 189 PrimarySteppedDownPrimary stepped down while operation was in progress (el primario dejó de serlo durante la operación)
- 7 HostNotFoundCould not find host
- 175 QueryPlanKilledQuery plan killed during execution
- 11602 InterruptedDueToReplStateChangeOperation interrupted due to a replication state change (operación interrumpida por un cambio de estado de la replicación)
- 136 CappedPositionLostCapped collection position lost