2011-01-21 3 views
15

Używam: MongoDB 1.6.4, Python 2.6.6, PyMongo 1.9, Ubuntu 10.10MongoDB: Uzyskiwanie "Cursor klienta :: plon nie może odblokować b/c blokady rekurencyjnej" ostrzeżenie, gdy używam findAndModify w dwóch instancjach procesowych

Otrzymuję "Kursor klienta :: zbiór nie może odblokować b/c blokady rekurencyjnej" ostrzeżenie w moich logach bardzo często, gdy używam findAndModify w dwóch procesach instancji. Gdy używam tylko jednego ostrzeżenia o procesie, nie pojawia się.

Jak mogę to naprawić?

* Aktualizacja 08 marca 2013 *

Czy istnieje poprawka tego problemu już teraz?

+2

zwykle oznacza to, że brakuje indeksów w polach używanych w zapytaniu. – pingw33n

+0

Ale nie używam sortowania. A jeśli wynik jest stronicowany, muszę utworzyć indeks? –

+4

Nie znam szczegółów technicznych tego ostrzeżenia, ale z mojego doświadczenia wynika, że ​​dodanie indeksu do pola zapytania pomaga. sprawdź, czy masz indeks pól, które były używane w części zapytania findAndModify. również uruchom 'db.collection.find () .explain()', aby sprawdzić, czy używa indeksu. – pingw33n

Odpowiedz

22

Zazwyczaj oznacza to, że brakuje indeksów na polach użytych w zapytaniu.

Nie znam szczegółów technicznych tego ostrzeżenia o numerze , ale z mojego doświadczenia dodawanie indeksu w polu zapytania pomaga. sprawdź masz indeks na polach, które zostały użyte w części zapytania findAndModify. uruchom także db.collection.find(). explain() , aby sprawdzić, czy używa indeksu.

Dzięki pingw33n, którzy pomagają rozwiązać to pytanie.

+0

Dzięki. W moim przypadku potrzebny był [indeks związku] (http://docs.mongodb.org/manual/core/index-compound/), aby rozwiązać ten problem. –

2

Ludzie z Mongo mówią, że możesz zignorować to ostrzeżenie - patrz to thread. Zajmuje 2 procesów usiłujących uzyskać dostęp mutex (stąd tylko zobaczyć go z wielu instancji procesu)

Jesteśmy na pewno zdaje sobie sprawę z problemu - mówimy o najlepszy sposób do obsługi tych wiadomości będzie Naprzód. Nieprawidłowe wpisy dziennika powinny zostać wkrótce usunięte w nowej wersji.

Odnośnie odpowiedzi @ Konkretna. Tak, jeśli coś jest wolne - 90% przypadków brakuje indeksu

Powiązane problemy