46: LockBusy
MongoDBWas bedeutet das?
Die angeforderte Sperre oder Ressource konnte nicht sofort erhalten werden, weil eine andere Operation sie hielt, und die Operation wurde abgelehnt, statt zu warten. Sperrwartezeiten, die in einem Timeout enden, haben einen eigenen Code (24 LockTimeout).
Ursache
Parallele Administrations-/DDL-Operationen auf derselben Collection oder Datenbank (z. B. zwei gleichzeitige Index-Builds, collMod, drop oder rename), ein Konflikt mit einer laufenden Wartungsoperation oder eine interne Operation, die nicht einmal kurz auf eine Sperre warten kann und auf eine belegte Ressource trifft.
Lösung
Finde die kollidierende Operation: Untersuche mit db.currentOp() DDL- oder Wartungsoperationen auf demselben Namespace. Wiederhole den Befehl, nachdem die kollidierende Operation beendet ist. Serialisiere Administrations-/DDL-Operationen und führe sie nicht parallel auf derselben Collection aus. Besteht das Problem weiter, untersuche in den mongod-Logs die Operation, die die Ressource hält.