46: LockBusy
MongoDB¿Qué significa?
No se pudo adquirir de inmediato el bloqueo o recurso solicitado porque lo mantenía otra operación, y la operación se rechazó en lugar de esperar. Las esperas de bloqueo que terminan en timeout tienen un código distinto (24 LockTimeout).
¿Por qué ocurre?
Operaciones administrativas/DDL concurrentes sobre la misma colección o base de datos (p. ej., dos construcciones de índices a la vez, collMod, drop o rename), un conflicto con una operación de mantenimiento en curso o una operación interna que no puede esperar ni siquiera brevemente un bloqueo y encuentra un recurso ocupado.
Cómo solucionarlo
Encuentre la operación en conflicto: use db.currentOp() para inspeccionar las operaciones DDL o de mantenimiento que se ejecutan en el mismo namespace. Reintente el comando cuando termine la operación en conflicto. Serialice las operaciones administrativas/DDL y no las ejecute en paralelo sobre la misma colección. Si persiste, investigue en los logs de mongod qué operación mantiene el recurso.