24 LockTimeout: Operation exceeded time limit waiting for a lock
MongoDBNe demek?
Bir işlem, ihtiyaç duyduğu lock'u (ör. veritabanı/koleksiyon düzeyinde) beklerken tanımlı süreyi aştı ve iptal edildi. Lock zamanında elde edilemedi.
Neden olur?
Uzun süren bir işlem ya da DDL komutu (ör. bir koleksiyon üzerinde çakışan yönetim işlemleri) gerekli lock'u tutuyor; yoğun eşzamanlı yazma; ya da maxTimeMS ile sınırlanmış bir işlemin lock beklerken süresinin dolması. Çakışan index/collection işlemlerinde görülür.
Nasıl çözülür?
Lock'u uzun tutan işlemi bulun: db.currentOp() ile aktif ve bekleyen işlemleri inceleyin; gerekiyorsa db.killOp() ile sonlandırın. Çakışan yönetim komutlarını (index oluşturma, collMod, compact) yoğun olmayan zamanlara alın. İşlemleri kısa tutun ve gereksiz uzun transaction'lardan kaçının. Gerekiyorsa maxTimeMS değerini iş yüküne göre ayarlayın.
Aynı motorda diğer kayıtlar
- 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